The Unreal Engine officially provides container images.
Docker allows you to launch containers from container images and create an individual Unreal Engine environment.
This article explains the benefits of using Unreal Engine container images and how to build Unreal Engine projects and plugins.
目次
Container Images Provided by the Unreal Engine Official
Container images for the Unreal Engine are provided on Epic Games’ GitHub Organization page.
On the GitHub Organisation page, navigate to [Packages] > [unreal-engine] to see a list of available container images.
You must have a permission to access the Unreal Engine source code in order to pull container images.
See Documentation to get access permissions in advance.
The provided container images are for Unreal Engine versions "4.27" or lateer.
The tag name with "slim" are container images which reduces the image size through optimization.
Non-optimized container images have a very large image size, it is recommended to use "slim" version.
Advantages of Using Containers
The advantage of using containers is that you can build the Unreal Engine environment separately from the host environment.
Each containers are independent and can be stored as images.
This makes it easy to migrate your own modified environment to other systems.
For example, if you need to add your own third-party libraries in the Unreal Engine, you need to migrate the third-party libraries as well when you migrate your environment.
If you convert it to a container image when your work is complete, only you need to migrate is simply bringging the container image to another environment.
You can use containers for the following purposes.
- Eliminate problems caused by environment dependencies by using the Unreal Engine separate from the host environment.
- Share development environments among multiple users.
- Continuous testing and build (CI/CD).
This article explains how to build Unreal Engine projects and plug-ins in containers.
How to Launch a Container
This section describes how to obtain the pull images to launch containers.
There are many ways to obtain container images, but we will use Docker in this article.
Docker
To use Docker on Windows, download and install the installer from the official Docker page.
After installation, you use Docker on Windows after Docker Desktop is started.
For more information, please refer to official documentation.
Get the Get Container Image command
Go to the Epic Games’ GitHub Organization page, and select Packages > unreal-engine.
Click on [dev-slim-5.0.0] to get a command to pull the container image with the tag dev-slim-5.0.0
.
Then, copy the displayed command.
Pull a Container Image
To pull the container image on Windows, open a command prompt and run the command you copied.
To pull the container image, you will need to login by using the docker login
command, since pulling the container image needs to access the Unreal Engine source code.
You will be asked for the username and password, so enter the username and password of your GitHub account (or a token with read:package
permissions).
docker login ghcr.io
Once you have successfully logged in, you will be able to pull the container image.
To pull a container image with the tag dev-slim-5.0.0
, run the following command.
docker pull ghcr.io/epicgames/unreal-engine:dev-slim-5.0.0
To verify the pulled container image, run the command docker images
.
If the container image was successfully pulled, you can see the pulled image in the result of the command.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ghcr.io/epicgames/unreal-engine dev-slim-5.0.0 a9edd4a7beb3 2 weeks ago 35.7GB
Launch a Container
To launch the container, run the following command.
docker run -it ghcr.io/epicgames/unreal-engine:dev-slim-5.0.0 /bin/bash
Run the above command, and enter the container environment.
Since the container environment is Linux, you can run the basic Linux commands.
If you try the ls
command, you will see a list of files and directories located in the directory.
By default, you can see the directory Engine
.
$ ls
Engine
Build a project in a container
To build a Unreal Engine project in a container, use [AutomationTool](https://docs.unrealengine.com/4.27/ja/ProductionPipelines/BuildTools/ AutomationTool/Overview/).
To build the project, run the subcommand BuildCookRun
of the command RunUAT.sh
.
Below command will place .uproject
file in /path/to/SampleProject.uproject
and the built data will be placed in /tmp/Packaged
.
/home/ue4/UnrealEngine/Engine/Build/BatchFiles/RunUAT.sh BuildCookRun \
-utf8output \
-platform=Linux \
-clientconfig=Shipping \
-serverconfig=Shipping \
-project=/path/to/SampleProject.uproject \
-noP4 \
-nodebuginfo \
-allmaps \
-cook \
-build \
-stage \
-prereqs \
-pak \
-archive \
-archivedirectory=/tmp/Packaged
If the command is executed correctly, the following log is output.
...
BUILD SUCCESSFUL
AutomationTool executed for 0h 6m 4s
AutomationTool exiting with ExitCode=0 (Success)
Build a Plugin in a Container
The process of the building a plugin is the almost same by using the Automation Tool.
To build a plugin, use the subcommand BuildPlugin
of the command RunUAT.sh
.
Below command will place .uplugin
file in /path/to/SamplePlugin.uplugin
and the built data will be placed in /tmp/Packaged
.
/home/ue4/UnrealEngine/Engine/Build/BatchFiles/RunUAT.sh BuildPlugin \
-Plugin=/path/to/SamplePlugin.uplugin \
-Package=/tmp \
-Rocket
If the command is executed correctly, the following log is output.
...
BUILD SUCCESSFUL
AutomationTool executed for 0h 0m 22s
AutomationTool exiting with ExitCode=0 (Success)