Prerequisite reading:
This page assumes the reader has read and understood the following pages:
Contents
- Sources of Unreal Engine runtime images
- Sources of Unreal Engine development images
- Feature support matrix
Sources of Unreal Engine runtime images
Runtime images are container base images for running packaged Unreal projects. Packaged Unreal projects can run in any container image that includes the required runtime libraries. These requirements vary based on platform:
-
Windows containers: the mcr.microsoft.com/windows image will work out of the box, but is prohibitively large in size and impractical to deploy. The mcr.microsoft.com/windows/servercore image is smaller but will require a number of DLL files copied from either the full base image or the host system. Don’t even bother trying to use the mcr.microsoft.com/windows/nanoserver image.
-
Linux containers: any image based on a full Linux distribution should work out of the box (e.g. Fedora, CentOS, Ubuntu, etc.) but minimal distributions like Alpine will most likely have issues.
-
GPU accelerated Linux containers with the NVIDIA Container Toolkit: performing offscreen rendering inside a container requires an image derived from the nvidia/opengl, nvidia/vulkan or nvidia/cudagl base images. Creating X11 windows also requires the X11 runtime libraries.
Since runtime base images do not contain any Unreal Engine components, they can be distributed without any restrictions and shared publicly on container registries such as Docker Hub. A number of pre-configured base images are readily available for download:
-
Official Container Images: the set of official Unreal Engine container images provided by Epic Games includes a number of runtime images for various use cases. The Linux runtime images are derived from the ue4-runtime repository listed immediately below.
-
adamrehn/ue4-runtime: provides a variety of tags representing minimal, pre-configured environments for running packaged Unreal Engine projects in GPU accelerated Linux containers via the NVIDIA Container Toolkit. Support for both OpenGL and Vulkan is provided by all image variants. Includes variants with CUDA support for use with Pixel Streaming applications or machine learning workloads.
Sources of Unreal Engine development images
Development images are images which contain the “Engine Tools” (Editor and build tools.) As discussed in the Unreal Engine EULA Restrictions page, container images that include the Engine Tools for building and packaging Unreal projects or plugins cannot be distributed publicly. These container images must only be distributed privately to ensure compliance with the terms of the EULA.
Since building development images can be a time-consuming process, it is typically preferable to use pre-built images where available. If pre-built container images that meet your requirements are not available (or you wish to create container images for a custom version of the Unreal Engine) then you will need to build images and distribute them within your organisation via whichever private sharing mechanism is most appropriate.
The following sources provide pre-built development container images:
- Official Container Images: Use the official Unreal Engine container images provided by Epic Games.
The following sources are available for building development container images:
-
ue4-docker: Build Unreal Engine development container images using the ue4-docker project.
-
Custom Dockerfiles: Write your own Dockerfiles to build Unreal Engine development container images.
For details of the features supported by these sources, see the section below.
Feature support matrix
The table below lists the features that are supported by each source of development container images:
Feature | Source | |||
---|---|---|---|---|
Official Container Images | ue4-docker | Custom Dockerfiles | ||
Distribution | ||||
Dockerfiles | Yes | Yes | Yes | |
Pre-built images | Yes | No | No | |
Host platforms | ||||
Linux | Yes | Yes | Varies | |
Windows | Yes | Yes | Varies | |
macOS | Yes | Yes | Varies | |
Container platforms | ||||
Linux development images | Yes | Yes | Varies | |
Windows development images | No | Yes | Varies | |
Hardware acceleration | ||||
NVIDIA GPU support | Yes | Yes | Varies | |
Unreal Engine build tools | ||||
Source build | No | Yes | Varies | |
Installed Build | Yes | Yes | Varies | |
Unreal Engine target platforms | ||||
Windows native | Yes | Yes | Varies | |
Linux native | Yes | Yes | Varies | |
Linux cross-compilation | No | No | Varies | |
Android cross-compilation | No | No | Varies |
For an explanation of what each feature listed in the table denotes, see below.
Distribution
-
Dockerfiles: Provides Dockerfiles to build development container images from source.
-
Pre-built images: Provides pre-built development container images.
Host platforms
-
Linux: Supports building and/or running containers using Docker CE and Docker EE under Linux.
-
Windows: Supports building and/or running containers using Docker EE under Windows Server and Docker Desktop for Windows under Windows 10.
-
macOS: Supports building and/or running containers using Docker Desktop for Mac under macOS.
Container platforms
-
Linux development images: Supports building Linux development container images.
-
Windows development images: Supports building Windows development container images.
Hardware acceleration
- NVIDIA GPU support: Supports building Linux containers that are compatible with the NVIDIA Container Toolkit.
Unreal Engine build tools
-
Source build: Supports building a source build of the Engine.
-
Installed Build: Supports building an Installed Build of the Engine.
Unreal Engine target platforms
-
Windows native: Supports building Unreal Engine projects and plugins for Windows targets from Windows containers.
-
Linux native: Supports building Unreal Engine projects and plugins for Linux targets from Linux containers.
-
Linux cross-compilation: Supports cross-compiling Unreal Engine projects and plugins for Linux targets from Windows containers.
-
Android cross-compilation: Supports cross-compiling Unreal Engine projects and plugins for Android targets from Windows or Linux containers.