Ein Docker-Deployment braucht persistente Serverdaten, bewusst gesetzte Port-Freigaben und ein wiederherstellbares Paar aus Image und Konfiguration. Das Beispiel unten nutzt das von der Community gepflegte spritsail-Image auf einem Linux-Host; seine Pfade und Umgebungsvariablen sind spezifisch für dieses Image und keine universellen FXServer-Optionen.
Die hier gezeigten Konfigurations- und Codebeispiele beziehen sich auf FiveM für GTA V Legacy. Enhanced hat andere Laufzeit- und Kompatibilitätsregeln; überprüfe die Legacy-zu-Enhanced-Änderungen von Cfx.re bevor du sie auf einen Enhanced-Server anwendest.
Den Host vorbereiten
Installiere Docker Engine und das Compose-Plugin anhand von Dockers Anleitung für deinen Host. Verwende zuerst ein isoliertes Test-Deployment. Prüfe, ob Host-Architektur, verfügbare Ports und Image-Release zu deinem geplanten Server passen.
Erstelle ein privates Projektverzeichnis mit den data/ und txData/ -Unterverzeichnissen. Das Image nutzt /config für Serverdaten und /txData für txAdmin. Beschränke den Zugriff auf die Host-Verzeichnisse und Backups, da sie Zugangsdaten enthalten werden.
compose.yaml erstellen
Speichere dies als compose.yaml in diesem Projektverzeichnis. Die Lizenzkonfiguration bleibt der geschützten txAdmin-/Server-Einrichtung überlassen; der Verwaltungsport wird an die Loopback-Adresse des Hosts gebunden.
services:
fivem:
image: spritsail/fivem:stable
environment:
NO_DEFAULT_CONFIG: "1"
NO_LICENSE_KEY: "1"
volumes:
- ./data:/config
- ./txData:/txData
ports:
- "30120:30120/tcp"
- "30120:30120/udp"
- "127.0.0.1:40120:40120/tcp"
stdin_open: true
tty: true
restart: unless-stopped
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
Der stable -Tag des Images ist veränderlich und folgt der Definition des Upstream-Image-Maintainers. Lies vor dem Deployment dessen Release/Quelle; behandle das Wort „stable“ nicht als getestete Garantie. Ersetze nach dem Test die Image-Referenz durch den exakten gepullten Digest, den du dokumentierst.
txAdmin starten und konfigurieren
Führe im Projektverzeichnis auf dem Docker-Host Folgendes aus:
docker compose config --quiet
docker compose pull
docker compose up -d
docker compose logs --tail=100 fivem
Greife lokal auf txAdmin zu unter http://127.0.0.1:40120. Erstelle von deinem Arbeitsrechner aus einen SSH-Tunnel zu deinem tatsächlichen Host mit ssh -L 40120:127.0.0.1:40120 user@your-server, öffne dann dieselbe lokale Adresse in deinem Browser. Verwende dein echtes SSH-Konto bzw. deinen echten Hostnamen. Veröffentliche keine Setup-PINs oder Log-Ausgaben, die Zugangsdaten enthalten.
Folge dem Setup von txAdmin und wähle einen Speicherort für die Server-Daten innerhalb von /config, oder in einem anderen explizit gemounteten persistenten Verzeichnis. Gib die gültige Server-Lizenz privat ein. Wenn das gewählte Recipe eine Datenbank benötigt, stelle diese separat bereit und halte ihren Port privat; dieses Compose-Beispiel enthält keine.
Netzwerk und Persistenz überprüfen
Gib den vorgesehenen Spieler-Endpunkt im Host-/Provider-Netzwerk für TCP und UDP frei. Prüfe den Zugriff von außerhalb des Hosts. Von Docker veröffentlichte Ports greifen in Dockers Firewall-Regeln ein und können gewöhnliche UFW-Input-Regeln umgehen; ziehe die Firewall-Dokumentation von Docker zurate, anstatt ein Ersatz-Firewall-Regelwerk einzufügen.
Führe einen Test-Join durch, prüfe Ressourcenfehler und nimm eine harmlose Konfigurationsänderung vor. Erstelle den Container neu mit docker compose up -d --force-recreate und bestätige, dass Profil/Konfiguration erhalten bleiben. Eine HTTP-Antwort von info.json ist nur eine einfache Verfügbarkeitsprüfung und kein Nachweis für einen gesunden Gameplay-Betrieb.
Ein konsistentes Set sichern
Plane ein Wartungsfenster ein und stoppe Schreibvorgänge aus dem Gameplay. Sichere die gemounteten Verzeichnisse, die Compose-Definition, die private Konfiguration und jede externe Datenbank als ein zusammenpassendes Wiederherstellungsset. Für rein dateibasierte Daten kann bei gestopptem Dienst ein privates Archiv aus dem Projektverzeichnis erstellt werden mit:
umask 077
docker compose stop fivem
tar -czf "../fivem-files-$(date -u +%Y%m%dT%H%M%SZ).tgz" compose.yaml data txData
docker compose start fivem
Prüfe als Teil deines Runbooks, ob die Archiverstellung erfolgreich war, bevor du neu startest. Nimm zusätzliche Konfigurationsdateien und das Datenbank-Backup mit auf, wenn dein Setup sie nutzt. Ein Dateiarchiv allein kann keine externe Datenbank wiederherstellen. Teste die Wiederherstellung in separate Verzeichnisse und eine separate Datenbank.
Aktualisieren und wiederherstellen
Notiere den Digest des aktuell laufenden Images und erstelle das passende Backup, bevor du ein Update pullst. Teste das Kandidaten-Image gegen eine Kopie, ändere dann während der Wartung die Image-Referenz in der Produktion und wiederhole die Join-/Persistenz-Prüfungen.
Ein Rollback nur des Images macht Datenmigrationen, die von Ressourcen durchgeführt wurden, möglicherweise nicht rückgängig. Stelle die passenden Dateien/Daten bewusst wieder her und berücksichtige Schreibvorgänge seit dem Backup. docker compose down stoppt/entfernt den Dienst und behält dabei diese per Bind-Mount eingebundenen Verzeichnisse; behalte diese Verzeichnisse, bis eine Wiederherstellung nicht mehr nötig ist.
Referenzdokumentation
Quelle: spritsail/fivem · Quelle: docs.docker.com · Cfx.re — txAdmin