A Docker image to run a dedicated server for ARMA 3.
Sample run command:
docker run -d \
-p 2344:2344/udp \
-p 2344:2344 \
-p 2345:2345 \
-p 2302-2306:2302-2306/udp \
fragsoc/arma3
All ports taken from the wiki page.
Port(s) | TCP | UDP |
---|---|---|
2344 | yes | yes |
2345 | yes | no |
2302-2306 inclusive | no | yes |
/config
- server configuration/profiles
- difficulty profiles/mods
- server mods/missions
- mission config files
The image includes a script to install mods from the steam workshop to the mods volume.
Usage:
docker exec -it <container name> install-mods <steam username> <space-separated list of mod IDs>
You can find the mod IDs in the steam workshop URL: https://steamcommunity.com/sharedfiles/filedetails/?id=MOD_ID_IS_HERE
.
Install mods folders to the /mods
volume.
The launch script will automatically load them on next server start.
Warning: folders and subfolders may need their names correcting to have no capitals in them (see here)
Run the command:
make build STEAM_USER=<your steam username>
You will probably be prompted to login with steam - this is handled entirely by steamcmd; no code or scripts in this repo ever see your steam credentials.
If you want to rebuild the image with the latest version of ARMA 3, run:
make -B build STEAM_USER=<your steam username>
steamcmd
docker
, look here for windows or here for linux- GNU
make
, usually installed under thebuild-essential
package on linux; on windows, you must use cygwin or the WSL, etc. This can be skipped if you can install the linux build of the server to./server_files
with steamcmd after which you can just run a docker build as you might otherwise. - a steam account (doesn't need to own the game)
You require a steam account because, for whatever reason, the ARMA 3 dedicated server app on steam cannot be downloaded by the
anonymous
steam account
-
If docker reports an error communicating with
docker.sock
, you may need to run the above command as root -
If an error is thrown saying
steamcmd
not found, you need to locate your steamcmd executable (which steamcmd
) and append it as a variable to the make command:make build STEAM_USER=<your steam username> STEAMCMD=<your steamcmd location>
or:
make build STEAM_USER=<your steam username> STEAMCMD=$(which steamcmd)
-
If you get an instant
SEGFAULT
from the server when using bind mounts, either change the owner of the mounts to user:group999:999
or rebuild the image, passingUID=<desired system user ID>
tomake
or as a docker build arg.
The files in this repo are licensed under the AGPL v3. ARMA 3 is proprietary software owned by Bohemia Ineractive, no credit is taken for their work.