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:
Menu | Selection |
---|---|
Target Platform | Linux |
Architecture | x86_64 |
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:
- Move the Build you created using the unity editor in a folder called build.
- Create a folder on your local machine ( If you have Docker installed )
- Create a file with no extension named "Dockerfile" in this folder and paste the content shown in the example within it.
- Create a folder called build in this folder
- Copy the files generated by your Unity build into the
build
folder - 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
Now that you have a container for your game server, you can deploy it to the web within minutes on our dashboard!