
一条 docker compose up -d 把 AzerothCore 三个服务拉起来【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlkAzerothCore-WoTLK 是一套完整开源的魔兽世界WoT 客户端版本服务端核心它的 Docker 部署方案把整条链路拆成了 MySQL、authserver、worldserver 三个常驻容器再配两个跑完就自动退出的辅助容器。我上次搭的时候最大的感受是真正要背的其实就两条命令难点全在为什么第一次要等这么久和哪几个地方能改上。先把源码拉下来clone 地址就一条git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk进目录后面所有命令都在这个根目录里跑。五个容器其中两个跑完就退看 Docker Compose 编排文件 会发现编排里不止三个服务一共五个常驻声明加上两个一次性容器。理解它们的分工后面排障会省很多事容器对外端口干什么ac-database3306MySQL存 acore_auth / acore_world / acore_characters 三个库ac-authserver3724登录认证、会话握手ac-worldserver8085另有 7878 走 SOAP 接口地图、怪物 AI、战斗逻辑ac-db-import—一次性导入 base SQL 并跑完更新ac-client-data-init—一次性下载并解包客户端数据启动顺序在 compose 里用depends_on写死了database 健康检查通过后才起 db-importdb-import 成功退出后才轮到 authserver 和 worldserver。所以你不需要手动控制顺序docker compose up -d会按依赖把整条链拉起来客户端连的也就是 3724 和 8085 这两个端口。第一次 build 四十分钟起步后面基本秒过首次构建要下依赖、装工具链、用 ccache 编译整个服务端Dockerfile 里能看到它装了 ccache 并开了编译缓存所以慢是慢在头一次。我的机器上第一趟大概四十多分钟别以为它卡死了去翻日志放着就行之后只要没改到依赖层重跑基本是分钟级甚至更快。docker compose build docker compose up -d不想单独 build 也可以直接docker compose up -d --build效果一样只是把两步合到一条里。数据库导入在后台默默跑客户端先别急着连docker compose up -d返回了不代表能进游戏。worldserver 和 authserver 都挂着对 db-import 的service_completed_successfully依赖也就是说在 db-import 把 base 数据和 updates 全部灌完之前这两个容器会一直停在 Waiting 状态。我第一次导入用了小二十分钟docker compose ps里能看到 db-import 处于 restarting/exited 的中间态这是正常的等它变回 exited (0) 再去看客户端连不连得上。想盯进度就docker compose logs -f ac-db-import看到最后没有报错、容器退出码是 0才算导入完。建第一个管理员账号得进 worldserver 的控制台库导完、两个 server 都 running 之后还没有可登录的账号这一步得进到 worldserver 的交互式控制台里敲。docker compose attach ac-worldserver进控制台后建号第三个参数是权限等级-1是这条命令要求的固定后缀别去掉AC account create admin password 3 -1建完号这里有个坑退出控制台别直接 CtrlC那会把 worldserver 整个干掉。先按 CtrlP 再按 CtrlQ 脱离终端容器继续跑。忘了的话docker compose up -d再拉起来即可数据都在卷里不会丢。端口被占了加一个环境变量就能绕过去3306、3724、8085 里最容易撞的是 3306本机装过 MySQL和 3724别的私服。compose 文件里这几个端口全是用环境变量带默认值写的改法就是在命令前临时注入不用动任何文件DOCKER_DB_EXTERNAL_PORT3307 DOCKER_AUTH_EXTERNAL_PORT13724 docker compose up -d对应关系是DOCKER_DB_EXTERNAL_PORT管数据库DOCKER_AUTH_EXTERNAL_PORT管登录端口DOCKER_WORLD_EXTERNAL_PORT管世界端口DOCKER_SOAP_EXTERNAL_PORT管 7878。只想改一个就只传那一个其余仍走默认值。想改配置或换开发模式两个地方别搞混仓库的 compose 文件开头就写着一句别改这个文件建一个 docker-compose.override.yml 去改。override 文件放在同目录compose 会自动把两边合并你的覆盖项优先生效这样仓库本身保持只读不动。改端口、加环境变量、换 root 密码DOCKER_DB_ROOT_PASSWORD都往 override 里写就行。想边改代码边跑就别用上面这套了切到 dev profile它会把整个工作目录挂进容器、带上独立的构建缓存docker compose --profile dev up -d这套 dev 环境主要给开发场景用官方 README 里也提示它更吃文件系统性能Linux、WSL2 或 ext 系文件系统上体验最好macOS 上会明显慢。日常只想稳定跑一个能玩的服还是回到前面那套docker compose up -d就行。数据都在命名卷里想留个底可以在跑起来的状态下docker compose exec ac-database mysqldump -u root -ppassword acore_world world_backup.sql真要清环境才用docker compose down -v它会把卷一起删掉账号、角色、公会全没。后面想再往深挖的话acore.sh和各服务的环境变量、SQL 目录 里的 base 与 updates 结构以及 modules 下怎么挂自己的脚本都是顺着这套容器往上接的自然扩展点。【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考