This repository uses Docker and SteamCMD to download and check for updates to the TF2 dedicated server. If there's an update, it pushes the latest Docker image to the Docker Hub and GitHub Docker registry.
| Image Name | Image Tag | Image Size |
|---|---|---|
| doctorserver/tf2-dedicated-server | latest |
|
| doctorserver/tf2-dedicated-server | slim |
slimremoves unnecessary files like maps, which helps reduce the image size.
To install the TF2 dedicated server from the command line, use one of the following commands:
docker pull doctorserver/tf2-dedicated-server:latestor, use slim tag for smaller image size and faster deployment. (Recommended)
docker pull doctorserver/tf2-dedicated-server:slimFirst, create a temporary container to copy the necessary server files to your local tf directory:
docker create --name tf2-temp-server doctorserver/tf2-dedicated-server:latest sleep infinity
docker cp tf2-temp-server:/home/steam/serverfiles/tf/cfg ./tf
docker cp tf2-temp-server:/home/steam/serverfiles/tf/maps ./tf
docker cp tf2-temp-server:/home/steam/serverfiles/tf/materials ./tf
docker rm tf2-temp-server
To run the TF2 server using Docker Compose, add the following service configuration to your docker-compose.yml file:
services:
tf2-demo-server:
image: doctorserver/tf2-dedicated-server:latest
command: ./srcds_run -console -game tf +sv_pure 1 +randommap +maxplayers 24
ports:
- "27015:27015/tcp"
- "27015:27015/udp"
volumes:
- ./tf/cfg:/tf/cfg
- ./tf/maps:/tf/maps
- ./tf/materials:/tf/materials
restart: always
tty: true
stdin_open: trueFirst, create a temporary container to copy the necessary server files to your local tf directory:
docker create --name doctorserver/tf2-dedicated-server:slim sleep infinity
docker cp tf2-temp-server:/home/steam/serverfiles/tf/cfg ./tf
docker cp tf2-temp-server:/home/steam/serverfiles/tf/maps ./tf
docker cp tf2-temp-server:/home/steam/serverfiles/tf/materials ./tf
docker rm tf2-temp-server
Ensure you add at least one map to the maps folder in your local tf directory.
To run the TF2 server using Docker Compose, add the following service configuration to your docker-compose.yml file:
services:
tf2-demo-server:
image: doctorserver/tf2-dedicated-server:slim
command: ./srcds_run -console -game tf +sv_pure 1 +randommap +maxplayers 24
ports:
- "27015:27015/tcp"
- "27015:27015/udp"
volumes:
- ./tf/cfg:/tf/cfg
- ./tf/maps:/tf/maps
- ./tf/materials:/tf/materials
restart: always
tty: true
stdin_open: trueTo start the TF2 dedicated server, run the following command:
docker compose up -dTo attach to the running container, use:
docker attach <container_name>To detach from the container without stopping it, use the key combination:
Ctrl + P, Ctrl + Q
This section is for github developer
Go to the following URL: https://github.com/doctor-server/app-depots/blob/main/depots/232250.json
In the JSON file, find the value of depots.branches.public.buildid.
To build the Docker image locally, run the following command:
docker build -t tf2-dedicated-server:latest --build-arg REMOTE_BUILDID=<remote_buildid> --build-arg TAG=latest .docker build -t tf2-dedicated-server:slim --build-arg REMOTE_BUILDID=<remote_buildid> --build-arg TAG=slim .To run the demo TF2 server locally, use Docker Compose:
docker compose up -dTo copy the server files to a local directory, use the following command:
docker cp tf2-demo-server:/home/steam/serverfiles/tf ./tf
Successfully copied 11.7GB to C:\GitHub\tf2-dedicated-server\tf