153 lines
6.1 KiB
Markdown
153 lines
6.1 KiB
Markdown
|
---
|
|||
|
title: Untitled
|
|||
|
date: 2023-09-12 18:20:39
|
|||
|
excerpt:
|
|||
|
tags:
|
|||
|
rating: ⭐
|
|||
|
---
|
|||
|
# 前言
|
|||
|
本文假设系统已经安装完Docker,并且读者已经将镜像拉取完毕。并且假设此电脑装有显卡,且显存在3G以上(切记:AI专业显卡无法启动UE)。
|
|||
|
- 文档地址:https://docs.unrealengine.com/5.3/en-US/quick-start-guide-for-using-container-images-in-unreal-engine/
|
|||
|
- 镜像地址:https://github.com/orgs/epicgames/packages/container/package/unreal-engine
|
|||
|
|
|||
|
## 桌面版问题解决
|
|||
|
>docker: Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]问题解决
|
|||
|
```
|
|||
|
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
|
|||
|
sudo apt-key add -
|
|||
|
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
|
|||
|
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
|
|||
|
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
|
|||
|
sudo apt-get update
|
|||
|
|
|||
|
sudo apt-get install -y nvidia-container-toolkit
|
|||
|
|
|||
|
sudo systemctl restart docker
|
|||
|
```
|
|||
|
|
|||
|
# UE镜像选择
|
|||
|
- [runtime](https://github.com/orgs/epicgames/packages/container/unreal-engine/111082761?tag=runtime)
|
|||
|
- [dev-5.3](https://github.com/orgs/epicgames/packages/container/unreal-engine/125977937?tag=dev-5.3)
|
|||
|
- [dev-slim-5.3](https://github.com/orgs/epicgames/packages/container/unreal-engine/125977946?tag=dev-slim-5.3)
|
|||
|
|
|||
|
镜像主要分为runtime以及dev两种类型(slim为瘦身版)。主要的区别在于runtime是为了运行UE打包过的项目,带有图形显示环境。dev则带有一个对应版本的虚幻引擎,此引擎为源码编译版,官方也提供执行编译&构建镜像资料,有需求可以自行编译,一遍这种镜像是为了编译、打包项目所用。
|
|||
|
|
|||
|
https://github.com/adamrehn/ue4-runtime
|
|||
|
可以参考这位大佬的网站:https://unrealcontainers.com/docs/obtaining-images/write-your-own
|
|||
|
# 编译命令
|
|||
|
## 生成Project
|
|||
|
/home/user/Linux_Unreal_Engine_5.1.1/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh /home/user/Projects/AIMotionRender/AIMotionRender.uproject -game -engine -rocket -progress -VSCode
|
|||
|
|
|||
|
## Start Project
|
|||
|
/home/user/Linux_Unreal_Engine_5.1.1/Engine/Binaries/Linux/UnrealEditor -logs "/home/user/Projects/AIMotionRender/AIMotionRender.uproject"
|
|||
|
|
|||
|
## Build
|
|||
|
/home/user/Linux_Unreal_Engine_5.1.1/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/home/user/Projects/AIMotionRender/AIMotionRender.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
|
|||
|
|
|||
|
## UE Docker
|
|||
|
### UE-dev 5.1
|
|||
|
sudo docker run --gpus=all --rm -ti -v "/media/user//home/user/Projects/AIMotionRender:/project" ghcr.io/epicgames/unreal-engine:dev-5.1.1
|
|||
|
|
|||
|
### UE-Runtime
|
|||
|
sudo docker run --gpus=all --rm -e DISPLAY -ti \
|
|||
|
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
|||
|
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
|||
|
-v /home/user/Projects/AIMotionRender:/project \
|
|||
|
adamrehn/ue4-runtime:22.04-vulkan-x11
|
|||
|
|
|||
|
#### 编译Puert
|
|||
|
sudo docker run --gpus=all --rm -e DISPLAY -ti \
|
|||
|
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
|||
|
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
|||
|
-v /home/user/Projects/AIMotionRender:/project \
|
|||
|
-v /home/user/node:/home/user/node \
|
|||
|
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
|
|||
|
adamrehn/ue4-runtime:22.04-vulkan-x11
|
|||
|
|
|||
|
sudo apt-get install clang
|
|||
|
sudo apt-get install libc++-dev
|
|||
|
sudo apt-get install libc++abi-dev
|
|||
|
sudo apt-get install make
|
|||
|
curl -sL https://deb.nodesource.com/setup_16.x | sudo -e bash -
|
|||
|
sudo apt-get install -y nodejs
|
|||
|
cd /home/user/Projects/backend-nodejs/node-script
|
|||
|
npm install -s commander
|
|||
|
sudo apt-get install git
|
|||
|
/home/user/Projects/backend-nodejs/linux.sh
|
|||
|
|
|||
|
|
|||
|
root 用户
|
|||
|
sudo docker run -u 0 --gpus=all --rm -e DISPLAY -ti \
|
|||
|
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
|||
|
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
|||
|
-v /home/user/Projects/AIMotionRender:/project \
|
|||
|
-v /home/user/node:/home/user/node \
|
|||
|
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
|
|||
|
adamrehn/ue4-runtime:22.04-vulkan-x11
|
|||
|
#### 编译v8
|
|||
|
/home/user/Projects/backend-nodejs/linux.sh
|
|||
|
|
|||
|
|
|||
|
### Startup
|
|||
|
cd /home/ue4/UnrealEngine/Engine/Binaries/Linux \
|
|||
|
./UnrealEditor -log "/project/AIMotionRender.uproject"
|
|||
|
|
|||
|
/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor -log "/project/AIMotionRender.uproject"
|
|||
|
|
|||
|
### Compiler
|
|||
|
/home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/project/AIMotionRender.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## UE Docker
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# 需求
|
|||
|
1. 参考 adamrehn/ue4-runtime:22.04-vulkan-x11,重新构建容器
|
|||
|
2. 安装下列环境以进行Puerts的V8环境编译
|
|||
|
```bash
|
|||
|
sudo apt-get install clang
|
|||
|
sudo apt-get install libc++-dev
|
|||
|
sudo apt-get install libc++abi-dev
|
|||
|
sudo apt-get install make
|
|||
|
curl -sL https://deb.nodesource.com/setup_16.x | sudo -e bash -
|
|||
|
sudo apt-get install -y nodejs
|
|||
|
sudo apt-get install git
|
|||
|
```
|
|||
|
|
|||
|
```bash
|
|||
|
# 下载编译脚本,脚本需要手动修改一下
|
|||
|
cd /home/user/Projects/
|
|||
|
git clone https://github.com/puerts/backend-nodejs.git
|
|||
|
cd /home/user/Projects/backend-nodejs/node-script
|
|||
|
npm install -s commander
|
|||
|
/home/user/Projects/backend-nodejs/linux.sh
|
|||
|
```
|
|||
|
|
|||
|
## 原容器存在问题
|
|||
|
adamrehn/ue4-runtime:22.04-vulkan-x11存在的问题:
|
|||
|
1. 缺少相关编译环境。
|
|||
|
2. 没有设置环境变量不知道root、ue4账号密码。
|
|||
|
3. 参与编译的libatomic.so.1库是32位的。
|
|||
|
|
|||
|
经过测试使用官方镜像安装的Ubantu可以正常进行编译(UE项目以及Puerts v8环境),并且可以正常打开项目;原容器可以编译UE项目,但因为编译的Puerts v8环境有一些问题导致无法运行Puerts。
|
|||
|
|
|||
|
## 启动命令参考
|
|||
|
```bash
|
|||
|
sudo docker run --gpus=all --rm -e DISPLAY -ti \
|
|||
|
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
|||
|
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
|||
|
-v /home/user/Projects/AIMotionRender:/project \
|
|||
|
adamrehn/ue4-runtime:22.04-vulkan-x11
|
|||
|
|
|||
|
编译v8环境用:
|
|||
|
sudo docker run -u 0 --gpus=all --rm -e DISPLAY -ti \
|
|||
|
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
|||
|
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
|
|||
|
-v /home/user/Projects/AIMotionRender:/project \
|
|||
|
-v /home/user/node:/home/user/node \
|
|||
|
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
|
|||
|
adamrehn/ue4-runtime:22.04-vulkan-x11
|
|||
|
```
|