CSGO Training Server mit Docker und Auto-Update

Vorwort

Das Spiel ist Programm, viele spielten es schon mit 1.6, oder gar früheren Versionen.
Hier kurz und bündig die Installation eines Training-Servers basierend auf Docker.

Installation

Hinweis

Es können beliebig viele CSGO-Server gestartet werden, einfach einen weiteren Service in der docker-compose.yml und weitere env-Datei hinzufügen! Der Auto-Updater erkennt selbständig weitere Instanzen.

# File: docker-compose.yml

version: "3"
services:
  # Dokumentation: https://github.com/timche/docker-csgo-updater
  csgo_updater:
    container_name: "csgo_updater"
    # timches Updater Image
    image: "timche/csgo-updater"
    restart: "unless-stopped"
    # kann auch isoliert laufen, network_mode ist aber einfacher
    network_mode: "host"
    volumes:
    # notwendig um via Socket Docker Befehle (wie einen Neustart) zu senden
    - "/var/run/docker.sock:/var/run/docker.sock"
    environment:
      # Container mit dem folgenden Image werden berücksichtigt
      UPDATER_CONTAINER_IMAGE: "timche/csgo"
      # Interval (Sekunden) in denen Container gescannt werden
      UPDATER_POLL_INTERVAL: 60

  csgo_practice:
    container_name: "csgo_practice"
    # fertiges Image mit Training-Plugin
    image: "timche/csgo:pug-practice"
    restart: "unless-stopped"
    network_mode: "host"
    volumes:
    - "/srv/docker/containers/csgo_practice/:/home/csgo/server:rw"
    env_file:
    - practice.env

In der practive.env kommen alle Umgebungsvariablen hinein, die der Container berüsichtigt.
Weitere Informationen und Anleitungen für die REPLACE_-Keys findet man im Projekt https://github.com/timche/docker-csgo/blob/main/README.md

# File: practice.env

CSGO_GSLT=REPLACE_SPIELSERVER_ACCOUNT_KEY
CSGO_WS_API_KEY=REPLACE_MEIN_WEB_API_KEY
CSGO_MAP=de_mirage
CSGO_MAX_PLAYERS=16
CSGO_HOSTNAME=My Train server
CSGO_RCON_PW=mein_rcon_pw
CSGO_PW=mein_server_password
CSGO_TICKRATE=64
CSGO_GAME_TYPE=0
CSGO_TV_ENABLE=true
CSGO_TV_NAME=My Train TV
CSGO_TV_DELAY=45
CSGO_TV_PORT=27020
CSGO_DISABLE_BOTS=true

Auto-Update

Der CSGO-Updater Container prüft im Stdout-Log des Spieleservers, ob diese vom Steam-Server zu einem restart gebeten werden (MasterRequestRestart).
Wird die Zeile erkannt, löst der Updater einen Restart aus (sofern der Server leer ist) und die CSGO-Server-Container laden die aktuelle Spieleversion herunter.