BlueRoseNote/03-UnrealEngine/流程管理与部署/UE5 Ubantu & Docker 部署.md

6.1 KiB
Raw Blame History

title, date, excerpt, tags, rating
title date excerpt tags rating
Untitled 2023-09-12 18:20:39

前言

本文假设系统已经安装完Docker并且读者已经将镜像拉取完毕。并且假设此电脑装有显卡且显存在3G以上切记AI专业显卡无法启动UE

桌面版问题解决

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以及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环境编译
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
# 下载编译脚本,脚本需要手动修改一下
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。

启动命令参考

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