This code is meant to be a starting point for building unreal engine projects with pixel streaming runtimes in docker.
This is an implemenation using the Unreal dev container (for build) and pixel streaming runtime. Basic information on these containers can be found in the Unreal docs
The official Unreal Engine Images require GitHub membership with Epic Games, and this is where the ghcr.io
base images for Unreal are published.
Follow information in the Epic Games signup
repository for gaining access.
Because the images are in a private GitHub container registry, you will need to login any docker client where the images are used. See information how this is done for ghcr.io
Here are a few notes about the starter Dockerfile, which makes a few assumptions about project name and directory structure:
-
Change
'.'
to the relative path of the project source (ex:./PixelStreamingDemo
if in a subdirectory)# Copy UE4 project COPY --chown=ue4:ue4 . /tmp/project
-
Change the
.uproject
file name accordingly:# Package the example Unreal project RUN /home/ue4/UnrealEngine/Engine/Build/BatchFiles/RunUAT.sh BuildCookRun \ # ... -project=/tmp/project/PixelStreamingDemo.uproject \
-
Change the runtime binary accordingly:
# Start pixel streaming CMD ["/bin/bash", "-c", "./PixelStreamingDemo.sh ..."]
The sample Dockerfile contains a basic start command with support for Pixel Streaming command line arguments from the reference The following table shows the environment variables, which may be used:
Variable | About | Default |
---|---|---|
SIGNAL_URL |
Specify websocket url for the signalling server | ws://localhost:8888 |
RES_X |
Force resolution width | 1920 |
RES_Y |
Force resolution height | 1080 |
EXTRA_ARGS |
Any other commands as a string (ex -PixelStreamingHideCursor ) |