Docker image with steamcmd pre-installed for hosting game servers.
UPDATE August 2022: I cloned this repo and split from the original, because my PR was never accepted. The original is here: thmhoag/steamcmd.
This image is designed to be a base image for any server run via steamcmd
. Regular automated builds ensure that the
image always contains the latest version of steamcmd
. When using the image it is recommended to always pull the latest
tag to ensure no updates are required when running.
The image inherits from ubuntu
for a few reasons:
- Easier for those less familiar with linux to inherit and build from
- Ability to pull
steamcmd
from the apt package manager
- Valve Wiki - https://developer.valvesoftware.com/wiki/SteamCMD
- List of commands - https://github.com/dgibbs64/SteamCMD-Commands-List.git
- Generously curated and maintained by dgibbs64
- latest (using latest Ubuntu official image)
- kinetic, jammy, focal, bionic
Pull the latest:
docker pull drpsychick/steamcmd
To use the image as a base, inherit your docker image using the FROM
annotation in the Dockerfile:
ARG UBUNTU_VERSION=latest
FROM drpsychick/steamcmd:$UBUNTU_VERSION
steamcmd
has been added to the path so that it can be called easily from any location:
RUN steamcmd +app_update 1 +quit
By default, this image runs as the steam
user and does not have root access inside the container.
This is partially due to the way that steamcmd
expects to be run as a user with the name steam
,
but also for the increased security of not having root inside the container.
If you need root during the build of your image, you can switch users during the build:
USER root
RUN my-script-that-needs-root.sh
USER steam
If you need root access during the execution of the game server you will need to add the steam
user to the root user
group and make sure it can execute passwordless sudo
commands. I won't cover that here, as that should not be necessary
in the vast majority of cases and is not recommended.
NOTE: It is not recommended to run this image by itself, it is indended to be used as a base image when creating game server specific images. (Such as a 7dtd image, ARK image, CSGO image, etc)
To run by itself:
$ docker run -it drpsychick/steamcmd bash
Pull requests are welcome with the caveat that this image is meant to be a base image only and it is not intended to
include any additional functionality beyond steamcmd
itself.