AzerothCore-WoTLK Docker 部署教程:10 分钟跑通 MMO 服务器的一键部署完整指南
2026/9/19 5:40:12 网站建设 项目流程

AzerothCore-WoTLK Docker 部署教程:10 分钟跑通 MMO 服务器的一键部署完整指南

【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk

完成本篇指南后,你将拥有一个可直接接入客户端的 AzerothCore-WoTLK 服务端环境:认证、世界、数据库三个游戏服务由一套 Docker Compose 工程统一拉起,全程只需要三条命令加一次初始化。

前置检查清单

开始前逐项确认,任何一项缺失都会导致后续步骤卡住:

  • 操作系统:Linux / macOS / Windows(WSL2 下体验最佳)
  • Docker 环境:Docker 引擎 + docker compose(v2)+ buildx 插件,Docker Desktop 已内置这三者
  • 硬件资源:至少 4 核 CPU、8 GB 内存(镜像构建阶段为全量 C++ 编译,是资源峰值)
  • 磁盘空间:预留 20 GB 以上(源码、构建缓存、客户端数据卷、MySQL 数据卷)
  • 端口占用:默认使用 3306、3724、8085、7878 四个宿主机端口,可用ss -lnt预先确认
  • 无需本机安装:MySQL、CMake、Boost 等依赖全部封装在镜像内,主机保持干净即可

部署主线:三步完成

第一步:获取源码

git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk

预期现象:克隆完成后目录中出现 docker-compose.yml、apps/docker/ 等文件。耗时约 1~3 分钟,视网速而定。

第二步:构建容器镜像

docker compose build

预期现象:终端持续输出各层编译日志,最终每个目标打印Successfully built。首次构建包含完整编译链(Clang + ccache),耗时约 30~60 分钟;再次执行时命中缓存,通常在 1 分钟内完成。

第三步:启动服务集群

docker compose up -d

预期现象:容器按依赖顺序逐个进入running状态。首次启动会比后续慢,因为ac-db-import需要导入全部基础库与更新 SQL(约 5~15 分钟)。确认方式:

docker compose ps

预期输出:ac-database状态为healthyac-db-importac-client-data-init显示exited (0)(一次性任务正常退出),ac-authserverac-worldserverrunning

服务全景

服务名职责宿主机端口
ac-databaseMySQL 8.4,承载 acore_auth / acore_world / acore_characters 三个库3306
ac-db-import一次性任务:导入基础数据与数据库更新
ac-authserver客户端账号认证3724
ac-worldserver游戏主逻辑进程(含 SOAP 接口 7878)8085
ac-client-data-init一次性任务:下载客户端 DBC 数据至独立卷

小贴士:不要直接修改 docker-compose.yml,官方要求将自定义改动写入docker-compose.override.yml(模板见 conf/dist/docker-compose.override.yml)。

首次初始化:创建管理员账号

服务全部就绪后,需要为控制台创建第一个管理员账号才能进游戏:

docker compose attach ac-worldserver

进入控制台后执行(等级 3,GM 权限 -1):

AC> account create admin password 3 -1

预期现象:控制台提示账号创建成功。

重要提示:退出控制台必须按Ctrl+P 再按 Ctrl+Q。Ctrl+C 会向进程发送终止信号,导致 worldserver 退出并影响服务。

运维速查小抄

操作命令说明
实时日志docker compose logs -f ac-worldserver跟踪世界服日志,Ctrl+C 仅退出跟踪
状态检查docker compose ps确认各容器 running / healthy / exited(0)
停止服务docker compose stop停容器但保留配置与数据
备份数据库docker compose exec ac-database mysqldump -u root -ppassword acore_world > backup.sql三个库可分别导出,root 默认密码password
恢复出厂docker compose down -v删除数据卷,下次 up 重新导入,属破坏性操作

高频问题

问:端口被占用了怎么办?答:compose 支持环境变量覆写端口,在仓库根目录创建.env文件(模板见 conf/dist/env.docker),写入DOCKER_DB_EXTERNAL_PORT=3307之类的键值后重新docker compose up -d。四个对外端口均可用DOCKER_*_EXTERNAL_PORT调整。

问:改了代码如何生效?答:开发场景使用 dev profile,它会启动ac-dev-server并把整个源码目录绑定进容器:

docker compose --profile dev up -d

容器内重新编译即可,无需重复走完整镜像构建;Linux / WSL2 下性能最佳(见 apps/docker/Dockerfile.dev-server)。

问:数据存放在哪里?答:MySQL 数据在ac-database卷,客户端 DBC 数据在ac-client-data卷,配置与日志落在宿主机的env/dist/etcenv/dist/logs目录。down不带-v时以上全部保留。

问:如何只更新工具而不重新编译?答:地图提取等工具由独立的toolsprofile 提供:docker compose --profile tools exec ac-tools bash,日常运行无需激活。

收束

容器化把环境差异压缩为零,你的精力可以全部留给脚本、数据库与玩法开发本身。

【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询