菜单
本页目录

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_rprivatekey.pempublickey.pemScript.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 ...