Docker-Compose部署
数据库镜像
xhatt/dnfmysql:5.6
服务端镜像timoxo/dnfserver:huazhi-6.8.8.250313
注:可能与dp插件有冲突,可使用低版本dp
-
docker-compose.yaml
新建一个
docker-compose.yaml
文件,具体参数可以根据实际修改需要注意的环境变量:
MYSQL_ROOT_PASSWORD :数据库root用户的密码(默认外部只能用root访问)
PUBLIC_IP :服务器的IP地址(单机可能就是本地的IP,没试过)需要开放的端口:
ports下的端口需要全部开放出来!
version: 3" services: dnfmysql: image: xhatt/dnfmysql:5.6 ports: - 3306:3306 environment: - TZ=Asia/Shanghai # game账户ip白名单 - ALLOW_IP=172.% # game账户密码,貌似不能修改 - GAME_PASSWORD=uu5!^%jg # root密码 - MYSQL_ROOT_PASSWORD=88888888 restart: unless-stopped volumes: - ./dnfmysql/mysql:/var/lib/mysql container_name: dnfmysql dnfserver: image: timoxo/dnfserver:huazhi-6.8.8.250313 depends_on: - dnfmysql environment: - TZ=Asia/Shanghai # 自动获取mysql容器的ip - AUTO_MYSQL_IP=true # mysql容器名称(主机名) - MYSQL_NAME=dnfmysql # game账户密码 - GAME_PASSWORD=uu5!^%jg # 自动获取公网ip - AUTO_PUBLIC_IP=false # 这里填写你的IP地址 - PUBLIC_IP=你的IP地址 # DP2插件 - DP2=true shm_size: 10g memswap_limit: -1 mem_limit: 1g cpus: 1.0 restart: unless-stopped ports: - 8188:8188/tcp # 花枝登录器 网关 - 20303:20303/tcp # df_dbmw_r - 20303:20303/udp # df_dbmw_r - 20403:20403/tcp # df_dbmw_r - 20403:20403/udp # df_dbmw_r - 40403:40403/tcp # df_manager_r - 40403:40403/udp # df_manager_r - 7000:7000/tcp # df_bridge_r - 7000:7000/udp # df_bridge_r - 7001:7001/tcp # df_channel_r - 7001:7001/udp # df_channel_r - 7200:7200/tcp # df_relay_r - 7200:7200/udp # df_relay_r - 10011:10011/tcp # df_game_r - 31100:31100/tcp # df_community - 30303:30303/tcp # df_monitor_r - 30303:30303/udp # df_monitor_r - 30403:30403/tcp # df_guild_r - 30403:30403/udp # df_guild_r - 10052:10052/tcp # df_game_r - 20011:20011/tcp # df_game_r - 20203:20203/tcp # df_dbmw_r - 20203:20203/udp # df_dbmw_r - 30703:30703/udp # df_coserver_r - 11011:11011/udp # df_game_r - 2311:2311/udp # df_stun_r - 2312:2312/udp # df_stun_r - 2313:2313/udp # df_stun_r - 30503:30503/udp # df_statics_r - 11052:11052/udp # df_game_r volumes: - ./dnfserver/data:/data - ./dnfserver/log:/home/neople/game/log container_name: dnfserver
-
构建
与
docker-compose.yaml
文件同一目录下使用命令修改yaml文件后也需要重新执行,注意:已生成的文件可能需要手动修改或者删除后重新生成,防止修改了参数不生效
# -d 表示后台运行 docker-compose up -d
-
注意
构建成功后,如果你没有修改
docker-compose.yaml
文件里的挂载目录,那么会在其目录下生成两个文件夹:
1️⃣dnfserver
:服务端目录,包含服务端所需要的关键文件
2️⃣dnfmysql
:数据库目录
此时我们需要准备df_game_r
、privatekey.pem
、publickey.pem
、Script.pvf
四个文件,放入dnfserver/data
目录下,再重启容器。
最后的结构类似如下:├── docker-compose.yml ├── dnfmysql └── dinfserver ├── log └── data ├── dp2 ├── df_game_r ├── privatekey.pem ├── publickey.pem └── Script.pvf
重启容器
#查看容器所有信息 docker ps #重启容器 docker restart [容器ID或名称]
-
验证
查看
/log/siroco11/Logxxxxxxxx.init
文件,当出现五国 + 两个感叹号带代表成功Logxxxxxxxx.init
文件(其中xxxxxxxx为当天时间),两个感叹号为Connect To
[12:50:05] [!] Service Restrict List ... [12:50:05] Security Restrict Begin [12:50:05] - RestrictBegin : 1 [12:50:05] - DropRate : 0 [12:50:05] Security Restrict End [12:50:05] GeoIP Allow Country Code : CN [12:50:05] GeoIP Allow Country Code : HK [12:50:05] GeoIP Allow Country Code : KR [12:50:05] GeoIP Allow Country Code : MO [12:50:05] GeoIP Allow Country Code : TW [12:50:05] [!] Monitor Server Connected [12:50:05] [!] Guild Server Connected [12:50:15] [!] Connect To Monitor Server ... [12:50:15] [!] Connect To Guild Server ...