81 lines
2.3 KiB
YAML
81 lines
2.3 KiB
YAML
services:
|
|
tmserver:
|
|
image: git.techniverse.net/scriptos/trackmania-server:1.3.2
|
|
build:
|
|
context: .
|
|
container_name: tmserver
|
|
restart: unless-stopped
|
|
stop_grace_period: 30s
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
ports:
|
|
- "${SERVER_PORT:-2350}:${SERVER_PORT:-2350}/tcp"
|
|
- "${SERVER_PORT:-2350}:${SERVER_PORT:-2350}/udp"
|
|
- "${SERVER_P2P_PORT:-3450}:${SERVER_P2P_PORT:-3450}/tcp"
|
|
- "80:80/tcp"
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- ./data/gamedata:/opt/tmserver/GameData
|
|
- ./data/controlpanel:/var/www/html
|
|
- ./data/xaseco:/opt/tmserver/xaseco
|
|
networks:
|
|
tmserver_net:
|
|
ipv4_address: 172.20.60.10
|
|
|
|
mariadb:
|
|
image: mariadb:11.4
|
|
container_name: tmserver-mariadb
|
|
restart: unless-stopped
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
|
|
# RemoteCP-Datenbank (via MariaDB-Init)
|
|
MYSQL_DATABASE: ${REMOTECP_DB_NAME:-remotecp}
|
|
MYSQL_USER: ${REMOTECP_DB_USER:-remotecp}
|
|
MYSQL_PASSWORD: ${REMOTECP_DB_PASSWORD}
|
|
# XAseco-Datenbank (via Init-Script init-xaseco-db.sh)
|
|
XASECO_DB_NAME: ${XASECO_DB_NAME:-xaseco}
|
|
XASECO_DB_USER: ${XASECO_DB_USER:-xaseco}
|
|
XASECO_DB_PASSWORD: ${XASECO_DB_PASSWORD}
|
|
volumes:
|
|
- ./data/mariadb:/var/lib/mysql
|
|
- ./assets/db/init-xaseco-db.sh:/docker-entrypoint-initdb.d/20-init-xaseco-db.sh:ro
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 30s
|
|
networks:
|
|
tmserver_net:
|
|
ipv4_address: 172.20.60.11
|
|
|
|
ip-watcher:
|
|
image: alpine:3.21
|
|
container_name: tmserver-ip-watcher
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- tmserver
|
|
command: ["/bin/sh", "/opt/WatchPublicIP.sh"]
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ./assets/bin/WatchPublicIP.sh:/opt/WatchPublicIP.sh:ro
|
|
networks:
|
|
tmserver_net:
|
|
ipv4_address: 172.20.60.12
|
|
|
|
networks:
|
|
tmserver_net:
|
|
name: tmserver.dockernetwork.local
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.20.60.0/25
|
|
gateway: 172.20.60.1
|
|
ip_range: 172.20.60.64/26
|