菜单
本页目录

Docker-Compose部署

  • docker-compose.yaml

    新建一个 docker-compose.yaml 文件,具体参数可以根据实际修改

      version: "2.3"
    
      services:
    
        dnf:
          hostname: dnf
          image: 1995chen/dnf:centos6-2.1.4.fix1
          # privileged: true
          cap_add:
            - NET_ADMIN
          environment:
            - TZ=Asia/Shanghai
           # 自动获取公网地址[默认为false]
            - AUTO_PUBLIC_IP=false
            # 公网或局域网IP地址
            - PUBLIC_IP=public_IP
            # GM管理员账号(不要使用特殊符号)
            - GM_ACCOUNT=gameuser
            # GM管理员密码(不要使用特殊符号)
            - GM_PASSWORD=gamepass
            # GM连接KEY(自定以密钥请使用网关生成的密钥,因为密钥有格式限制,不符合格式的密钥会导致登录器一致卡在网关连接那里)
            - GM_CONNECT_KEY=763WXRBW3PFTC3IXPFWH
            # GM登录器版本
            - GM_LANDER_VERSION=20180307
            # DNF数据库root密码
            - DNF_DB_ROOT_PASSWORD=88888888
            # DNF数据库game密码(必须8位)
            - DNF_DB_GAME_PASSWORD=12345678
            # supervisor web页面用户名
            - WEB_USER=root
            # supervisor web页面密码
            - WEB_PASS=123456       
            # Netbird[可选配置][没有公网IP的可选私有内网接入]      
            # Netbird初始化KEY
            #- NB_SETUP_KEY=''
            # Netbird服务器地址
            #- NB_MANAGEMENT_URL=''
            # 开启DDNS[可选配置]
            # - DDNS_ENABLE=true
            # - DDNS_DOMAIN=''
          # shm_size: 8g【不可删除】,docker默认为64M较小,需要增加才能保证运行
          shm_size: 8g
          memswap_limit: -1
          mem_limit: 1g
          cpu_count: 1
          restart: always
          ports:
            - 2000:180/tcp              # supervisor web
            - 3000:3306/tcp             # mysql
            - 7600:7600/tcp             # 统一登陆器
            - 881:881/tcp               # 统一网关
            - 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[ch.11]
            - 11011:11011/udp           # df_game_r[ch.11]
            - 10052:10052/tcp           # df_game_r[ch.52]
            - 11052:11052/udp           # df_game_r[ch.52]
            - 2311-2313:2311-2313/udp   # df_stun_r
          volumes:
            - ./data:/data
            - ./mysql:/var/lib/mysql
            - ./log:/home/neople/game/log
    
  • 构建

    docker-compose.yaml 文件同一目录下使用命令

    修改yaml文件后也需要重新执行,注意:已生成的文件可能需要手动修改或者删除后重新生成防止修改了参数不生效

      # -d 表示后台运行 
      docker-compose up -d
    
  • 验证

    查看 /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 ...
    

常用文件

操作文件需要进入容器内部,或者挂载目录。需要注意服务器上的一些特殊文件,修改后需要重启Docker容器

  • 等级文件

    将等级文件 df_game_r 上传到 /data 目录下替换,并且需要同步修改客户端文件夹内的 DNF.toml 文件
  • 版本文件

    Script.pvf 需要和客户端根目录内一致

Dp2

1995chen提供的Docker镜像启动Dp2需要一定的性能,CPU占用高

将Dp插件复制到 /data/dp 目录,删除原有的 libhook.so 文件,最后的结构类似如下:

    dp
    ├── df_game_r.js
    ├── df_game_r.lua
    ├── dp2.tgz
    ├── frida
    ├── lib
    ├── libdp2.so
    ├── libdp2.xml
    ├── libGeoIP.so.1
    ├── libhook.so
    ├── lua
    ├── lua2
    ├── README.md
    └── script

重启Docker容器

与docker-compose.yaml文件同一目录下使用命令

  docker-compose restart