使用 docker-compose 快速搭建多个饥荒服务器
dockerfile 内容
FROM ubuntu:20.04
RUN dpkg --add-architecture i386
RUN apt update && apt-get install curl wget libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386 -y
RUN ln -s /usr/lib64/libcurl.so.4 /usr/lib64/libcurl-gnutls.so.4
docker-compose 内容
version: '2.1'
services:
update-dst:
build: .
container_name: update-dst
command:
- sh
- -c
- |
if [ ! -f ~/steamcmd/steamcmd.sh ]; then cd ~/steamcmd && wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && tar -xvzf steamcmd_linux.tar.gz; fi
~/steamcmd/steamcmd.sh +login anonymous +force_install_dir /root/dst +app_update 343050 validate +quit;
sleep 5;
echo "start update dst again";
~/steamcmd/steamcmd.sh +login anonymous +force_install_dir /root/dst +app_update 343050 validate +quit;
cp ~/steamcmd/linux32/libstdc++.so.6 ~/dst/bin/lib32/
cp /usr/lib/libcurl.so.4 ~/dst/bin/lib32/libcurl-gnutls.so.4
volumes:
- ./server_files/dst:/root/dst
- ./server_files/steamcmd:/root/steamcmd
dns:
- '8.8.8.8'
## =================== ??? =======================
dst-???-master:
build: .
container_name: dst-???-master
working_dir: /root/dst/bin
command: ./dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master
networks:
???-network: # 由于设定服务master_ip bind_ip 需要用到 ip 地址
ipv4_address: '192.168.100.10'
volumes:
- ./server_files/dst:/root/dst ## 饥荒游戏服务器执行代码
- ./server_files/steamcmd:/root/steamcmd:ro ## 饥荒游戏服务器初始化代码
- ./game_files/???:/root/.klei ### 游戏文件
dns:
- '8.8.8.8'
dst-????-caves:
build: .
container_name: dst-????-caves
working_dir: /root/dst/bin
command: ./dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Caves
networks:
www-network:
ipv4_address: '192.168.100.20'
volumes:
# - ./server_files/steamcmd
- ./server_files/dst:/root/dst:ro
- ./server_files/steamcmd:/root/steamcmd:ro
- ./game_files/????:/root/.klei
dns:
- '8.8.8.8'
networks:
www-network:
ipam:
config:
- subnet: '192.168.100.0/24'
# volumes: ## 单独的一个存储卷, 不是挂载普通文件目录形式
# 饥荒服务器配置文件 cluster.ini bind_ip 的意思是是 master 服务器绑定的ip, 与 master_ip 一致即可
之后在 docker-compose.yml 所在的目录下 执行 docker-compose up -d xxxxx-service-name xxxx-servcie-name 即可. 从klei官网下载的配置需要修改 bind_ip 和 master_ip 均为 Master 游戏容器设置的 ip.
如果启动时,报错提示ip相关问题,可以先清理一下network: docker network prune,参考
docker-compose.yml 内容参考
定时任务参考
