AzerothCore-WoTLK Docker 部署指南:一键搭建魔兽世界私服
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
AzerothCore-WoTLK 是《巫妖王之怒》版本的开源模块化服务器方案,源码编译要处理一堆依赖和数据库配置。用 Docker 做容器化部署,几条命令就能拉起一台可玩的魔兽世界私服,本文带你走完全流程,照着执行即可在自己的机器上跑通。
部署效果:跑起来之后你拥有什么
docker compose up -d执行完,你得到的是一组在后台跑着的容器:数据库、账号认证、以及玩家真正连入的世界进程。auth、characters、world 三个库由导入容器自动初始化完成,本机不需要安装 MySQL、CMake 和客户端数据工具。环境弄坏了直接删除数据卷重建,整套部署几分钟内可以复现。客户端指向你机器的 IP,登录端口 3724、世界端口 8085,即可进游戏。
快速上手:一键部署全部服务
环境要求与获取代码
机器上装好 Docker Engine 20.10 及以上版本和 Docker Compose v2(Docker Desktop 自带这两项)。然后拉取项目代码并进入目录:
git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk构建镜像并启动全部服务
先构建镜像,再把所有容器拉起来:
docker compose build docker compose up -d首次构建要下载全部依赖并编译服务器核心,耗时约 30-60 分钟,取决于网络;之后构建会复用缓存,快很多。第一次up -d还要等数据库导入完成。构建细节可参考 apps/docker/README.md。
创建管理员账号
服务器就绪后,挂到 worldserver 容器的控制台:
docker compose attach ac-worldserver在AC>提示符后输入创建管理员账号的命令(这是游戏内控制台命令,不是 shell 命令):
AC> account create admin password 3 -1退出控制台请按Ctrl+P再按Ctrl+Q,不要直接按Ctrl+C,那会连带把世界进程停掉。
服务组成
compose 文件里定义了五个核心容器:
| 容器 | 职责 | 依赖 |
|---|---|---|
ac-database | MySQL 8.4 数据库,存放账号、角色、世界三个库 | 无 |
ac-db-import | 一次性导入数据库初始化数据,完成后自动退出 | 数据库健康 |
ac-client-data-init | 处理客户端游戏数据,完成后自动退出 | 无 |
ac-authserver | 账号认证服务,监听 3724 端口 | 数据库与数据导入 |
ac-worldserver | 游戏世界进程,玩家实际连入这里,监听 8085 端口 | 数据库、数据导入、客户端数据处理 |
两个 init 类容器跑完任务就自动停止,不需要你维护。
日常运维速查
查看服务状态
确认哪些容器在跑、各自状态如何:
docker compose ps看实时日志
追踪 worldserver 的启动进度和报错:
docker compose logs -f ac-worldserver看认证服务日志时,把最后的容器名换成ac-authserver即可。
修改主机映射端口
宿主机 3306 被占用时,用环境变量在启动时覆盖:
DOCKER_DB_EXTERNAL_PORT=3307 docker compose up -d或者写进.env文件,之后就不用每次都填:
echo "DOCKER_DB_EXTERNAL_PORT=3307" > .env docker compose up -d世界端口(8085)和认证端口(3724)同理,分别用DOCKER_WORLD_EXTERNAL_PORT和DOCKER_AUTH_EXTERNAL_PORT覆盖。
备份数据库
把世界库导出成本地 SQL 文件:
docker compose exec ac-database mysqldump -u root -ppassword acore_world > world_backup.sql养成定期执行的习惯,改动大的操作前先跑一次。
踩坑提醒:魔兽世界私服搭建的三个高频坑
⚠️ 按"现象→原因→解法"对号入座:
- 容器起不来、反复重启。端口冲突:宿主机 3306、3724 或 8085 被占用。查一下占用进程,用上一节的
DOCKER_*_EXTERNAL_PORT变量改端口。 - 退出控制台后世界进程停了。按了
Ctrl+C,信号直接打给了 worldserver 前台进程。用Ctrl+P+Ctrl+Q分离控制台。 - 更新项目后自己改的配置丢了。直接改了
docker-compose.yml,这个文件由项目维护。自定义配置写到新建的docker-compose.override.yml里。
进阶:开发环境与两条性能提示
- 启动开发环境:
docker compose --profile dev up -d会拉起ac-dev-server容器,把本地代码挂载进容器,建议在 Linux 或 WSL2 下使用。 - 改完代码热更新:执行
docker compose exec ac-dev-server cmake --build /azerothcore/var/build重新编译即可。
性能方面:首次构建最耗时,务必利用缓存;数据库卷放在快盘上,并坚持定期备份。
管理员账号建好后用客户端登入世界,这台私服就算真正跑通了。下一步建议先用docker compose logs -f ac-worldserver确认玩家连接日志正常,再动手探索项目的 modules/ 扩展机制。
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考