Use Cases:

Linux Installed Builds

Use container images as a source of pre-built binaries in lieu of the Epic Games Launcher under Linux.

Here's what you'll need:

Contents

Overview

Under Windows and macOS, the Epic Games Launcher provides pre-built Engine binaries for download by all Engine Licensees. However, the lack of a native Linux version of the Launcher leaves Linux users without a readily available source of pre-built binaries. This complicates the onboarding process for Linux-based developers due to the need to compile the Engine from source. Fortunately, Unreal Engine container images can act as a source of pre-built Engine binaries that can be copied from the container filesystem to the host and then distributed via an organisation’s internal distribution mechanisms.

Key considerations

Implementation guidelines

Using container images from the ue4-docker project

The ue4-docker project provides the ue4-docker export command to export Installed Builds from the ue4-full container image. This command works with container images for Unreal Engine 4.21.0 and newer, and performs symlink retargeting on the host system automatically. Due to the presence of symlinks in the container images built by ue4-docker, manually copying the files from the container filesystem to the host filesystem is not recommended.

Using container images built from custom Dockerfiles

You can use the docker cp command to copy the directory structure of an Unreal Engine installation from the filesystem of a running container to the host filesystem. For example, we could run the following commands to perform an export if our container image is tagged unreal-engine:latest and the root of the Unreal Engine installation is located at /home/ue4/UnrealEngine within the container filesystem:

# Start a container and leave it running in the background
docker run --rm -d --name ue4 "unreal-engine:latest" bash -c "sleep infinity"

# Copy the Unreal Engine installation from the container filesystem to the host filesystem
docker cp "ue4:/home/ue4/UnrealEngine" "/destination/path/on/host/filesystem"

# Stop the container
docker stop ue4

If the directory structure of the Unreal Engine installation contains any symlinks then they will need to be removed at this point and replaced with symlinks to the appropriate paths on the host filesystem. When writing your own Dockerfiles it is good practice to either document these symlinks or provide an automated method for modifying them.

This content is landing soon!

Be sure to check out the Unreal Containers Twitter feed for news about content updates.