https://github.com/gmazoyer/docker-steamcmd
A container to help running steamcmd based servers.
https://github.com/gmazoyer/docker-steamcmd
docker gameserver steam steamcmd
Last synced: 12 months ago
JSON representation
A container to help running steamcmd based servers.
- Host: GitHub
- URL: https://github.com/gmazoyer/docker-steamcmd
- Owner: gmazoyer
- License: gpl-3.0
- Created: 2018-12-01T11:13:46.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-07-09T16:54:07.000Z (almost 6 years ago)
- Last Synced: 2025-04-03T23:32:43.109Z (about 1 year ago)
- Topics: docker, gameserver, steam, steamcmd
- Language: Shell
- Homepage:
- Size: 17.6 KB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# steamcmd Docker container
This `Dockerfile` helps to start **steamcmd** related processes isolating them
while they run. This image is based on `debian:buster`.
It can be used to start any game servers that can be setup using **steamcmd**.
This `Docker` container expects at least two volumes to work:
1. A volume used to store scripts for starting a server
2. A volume used to store server's data
In the scripts volume, a script called `server.sh` must be present to start
the container. This script is the entrypoint of the container and must
perform all steps relative to the server execution (update/start/…).
## Writing a server script
Script examples are available in the `scripts` directory. They can be used as
they are or modified to address any specific needs.
## Running a server
First the **steamcmd** image must be pulled from
[Docker Hub](https://hub.docker.com/) using the following command:
```
# docker pull gmazoyer/docker-steamcmd
```
After that two directories must be mounted as volumes to store the server's
data and server's script.
```
# mkdir -p /srv/docker/kf2/{data,scripts}
```
Once created, these directories can be used as volumes when starting the
docker instance. Make sure that a script called `server.sh` is in the
`scripts` directory to start the server instance properly.
```
# docker run -d --name=kf2 \
-v /srv/docker/kf2/data:/home/steam/server_data \
-v /srv/docker/kf2/scripts:/home/steam/server_scripts \
-p 0.0.0.0:20560:20560/udp \
-p 0.0.0.0:27015:27015/udp \
-p 0.0.0.0:7777:7777/udp \
-p 0.0.0.0:8080:8080 \
gmazoyer/docker-steamcmd:latest
```
This will run a Killing Floor 2 server, using the script previously given,
exposing ports on the host to make the server publicly available.
Since server's data are stored in a volume, it is possible to adjust the
server's configuration files while the server is offline. Any changes made to
files in the `data` or `scripts` will be persistent.