Docker Image
Overview
The Fusion Dedicated Server Docker Image Sample is a set of scripts and files showing how a Fusion Dedicated Server can be enveloped into a Docker Container and executed in a Docker environment.
The Docker platform is a well known virtualization system build around the concept of containers, a group of "virtual machines" running a set of particular applications, properly setup and enclosed, being able to be created and destroyed at will, without the need worry about process isolation and which OS the host machine is using.
When dealing with the creation of Dedicated Servers, the use of containers is one of the best solutions and most game server hosting providers accomplish their scalability precisely by the use of Docker underneath.
Download
| Version | Release Date | Download | |
|---|---|---|---|
| 1.0.2 | Nov 20, 2024 | Fusion Dedicated Server Docker Image 1.0.2 Build 733 | |
File Description
README.md: contain general information about how to build and use the sample.Dockerfile: the container description, a configuration file used byDockerwhen building theDocker Image. TheFusion Game Serverwill be executed from theLinuxContainer by thefusionuser. More info aboutDockerfilehere.bin/entrypoint.sh: script that will execute theFusion Game Serverand optionally parse the arguments passed to the container to the server binary.run_server.sh: reference script of how to run the container with optional arguments.
How to Run
This sample should only be used as reference and may need some modifications to suit more complex scenarios.
It does not show how to orchestrate the Game Servers, only how to run it using a Docker Container.
Setup Docker
- Go to docker.com/get-started.
- Install and setup your Docker Service.
Preparing the Fusion Server for a Docker Image
- Based on the Fusion Dedicated Server sample.
- Build a the
Dedicated Server:- Set
Linuxas theTarget Platformandx86_64asArchitecture. - Check the
Server Buildflag. - Set the executable name to
server.x86_64.
- Set
- Copy all the build files to the
binfolder.
Create the Fusion Server Docker Image
- Open a terminal on the current folder.
- Make sure the
Dockerservice is running in your system. - Run:
docker build -t <your_custom_image_name> .- Example:
docker build -t fusion-dedicatedserver .
- Example:
- A new
Docker Imagewith the namefusion-dedicatedserverwill be created on your local repository.
Run the Fusion Server as a Docker Container
- Open a terminal on the current folder.
- Make sure the
Dockerservice is running in your system. - Run:
docker run -d -p <host_custom_port>:27015/udp <your_custom_image_name>- Example:
docker run -d -p 27015:27015/udp fusion-dedicatedserver - By default, the Fusion Dedicated Server will bind to port
27015, and this port is already exposed by the Docker image (check theDockerfile). Running the command above, that port will be mapped to the host27015port as well. - Running a detached Container (
-dargument) makes it run independently of the current terminal.
- Example:
Optional Start Arguments
The Fusion Server Docker Image is prepared to accept the same arguments as the standalone build accepts. However, they have different argument names, because how the entrypoint.sh script read those.
Check the argument list below for more info:
-s <custom_session_name>: Use a Custom Session ID Name. Default: Random GUID Session Name-r <custom_region>: Connect the Server to a Custom Region. Default: Best Region-l <custom_lobby>: Join a Custom Lobby. Default: Join the DefaultClientServerLobby.-i <custom_public_ip>: Set a Custom Public IP of the Server. Default: Empty, the Server will use the STUN Service to discover its Public IP.-p <custom_public_port>: Set a Custom Public Port of the Server. Default: Empty, the Server will use the STUN Service to discover its Public Port.
Check the run_server.sh script for a more structured way of starting a new Fusion Server Container using the optional arguments. Example:
sh
docker run -d -p 27015:27015/udp fusion-dedicatedserver -s my_session -r eu -l my_lobby
Invoking this will start a Fusion Game Server using the Session Name my_session on Region eu and the Session will be listed on Lobby my_lobby.