Skip to main content

Unity on Docker

To create your game server's first container build, you will need to generate your server in Linux.

Select your server then File -> Build Settings

Build Settings menu

The Build Settings window allows you to choose your target platform, adjust settings for your Build, and start the build process. To access the Build Settings window, select File > Build Settings. Once you have specified your build settings, you can click on Build to create your Build or click the Build And Run to create and run it on the platform you have specified.

In the options, select the following values using the dropdowns:

MenuSelection
Target PlatformLinux
Architecturex86_64
tip

If you don't see Linux in Target Platform you must add the module Linux Build Support (Mono) to your Unity IDE. You can do this from Unity Hub.

And make sure the following options are selected:

  • Headless Mode
  • Server Build

Then Click Build

Once the Build is ready, let's make the Docker container.

Building the Game Server Docker Image

One of Edgegap's features is that it's agnostic of how you build your game executable. It just needs a reference for an OCI Image ( Docker, ContainerD), and it will be able to spin any number of servers you want. We will now get you started with creating your server running in a container.

You will find a Dockerfile at the root folder starting with Docker. This configuration file describes how to build the image, and here are the main points to look at:

  1. Move the Build you created using the unity editor in a folder called build.
  2. Create a folder on your local machine ( If you have Docker installed )
  3. Create a file with no extension named "Dockerfile" in this folder and paste the content shown in the example within it.
  4. Create a folder called build in this folder
  5. Copy the files generated by your Unity build into the build folder
  6. Create a file called entrypoint.sh and copy the content in ( Updating your build name )

Dockerfile

FROM ubuntu:bionic
MAINTAINER Edgegap <youremail@edgegap.com>

ARG DEBIAN_FRONTEND=noninteractive
ARG DOCKER_VERSION=17.06.0-ce

RUN apt-get update && \
apt-get install -y libglu1 xvfb libxcursor1 ca-certificates && \
apt-get clean && \
update-ca-certificates

COPY build/ /root/build/
COPY entrypoint.sh /entrypoint.sh

WORKDIR /root/
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]

Set the entry point

The entry point refers to the executable that will activate when a container is booting up.

Example:

entrypoint.sh

chmod +x /root/build/linuxBuild.x86_64
xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' /root/build/linuxBuild.x86_64 -batchmode -nographics

Next steps

Deploy your game server

Now that you have a container for your game server, you can deploy it to the web within minutes on our dashboard!