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 |
slim
removes 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:latest
or, use slim
tag for smaller image size and faster deployment. (Recommended)
docker pull doctorserver/tf2-dedicated-server:slim
First, 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: true
First, 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: true
To start the TF2 dedicated server, run the following command:
docker compose up -d
To 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 -d
To 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