15分钟跑起一台可玩的AzerothCore-WoTLK:Docker部署完整指南
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
AzerothCore-WoTLK 是一个开源 MMO 服务器,实现了《魔兽世界:巫妖王之怒》资料片的游戏逻辑。仓库里自带官方 Docker 编排文件,你不需要安装编译工具链,也不需要手工配置 MySQL,几条命令就能在本机起一台真实客户端可以登录的服务器。这篇文章把整个过程走一遍,包括建账号、改端口和处理常见故障。
服务器跑起来之后你能做什么 🎮
集群启动完成后,你的机器上就有了三样东西:
- 一个监听 3724 端口的账号认证服务,客户端登录界面指向它;
- 一个监听 8085 端口的世界服务,登录后的所有游戏逻辑都在它里面;
- 一个 MySQL 8.4 实例(默认监听 3306),存放
acore_auth、acore_characters、acore_world三个数据库。
游戏数据落在具名卷里,镜像重建后数据不会丢,这也是你之后可以放心折腾的前提。
容器集群里到底在跑什么
docker-compose.yml定义了 5 个容器,其中 3 个常驻、2 个是一次性任务:
| 容器 | 职责 | 对外端口 |
|---|---|---|
| ac-database | MySQL 8.4,承载三个游戏数据库 | 3306 |
| ac-authserver | 账号认证 | 3724 |
| ac-worldserver | 游戏世界逻辑 | 8085、7878 |
| ac-db-import | 一次性:导入数据库 | 无 |
| ac-client-data-init | 一次性:下载并解包客户端数据 | 无 |
启动顺序是自动编排的:数据库先通过健康检查,ac-db-import导入完成、客户端数据解包完成后,认证服和世界服才会启动。你不需要手动控制先后顺序。
服务器最短启动路径:从零到上线
前提只有一个:装好 Docker(Docker Desktop 自带 compose v2 和 buildx,Linux 上通过发行版包管理器安装即可)。
- 拿到源码并进入目录:
git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk- 构建镜像:
docker compose build首次构建最耗时间:要拉取全部依赖并编译服务端源码,几十分钟属正常现象。得益于镜像层缓存,之后的小改动重建会快很多。
- 启动集群:
docker compose up -d第一次up时两个一次性容器会先干活——导入数据库、准备客户端数据,世界服务在等它们完成。过几分钟用docker compose ps查看状态,全部显示 Up 即就绪。
管理员账号怎么建
docker compose attach ac-worldserver AC> account create admin password 3 -1输入完成后按 Ctrl+P 再按 Ctrl+Q 脱离容器控制台即可,这只是断开 TTY 附着,不会中断服务。
账号名为admin,密码为password,安全等级 3(管理员级别)。用客户端登录后,可通过游戏内指令创建角色、设置出生地图。
端口冲突怎么解,配置改在哪里
端口冲突是最常见的卡点。所有对外端口都支持环境变量覆盖:
| 默认端口 | 环境变量 | 用途 |
|---|---|---|
| 3306 | DOCKER_DB_EXTERNAL_PORT | 数据库 |
| 3724 | DOCKER_AUTH_EXTERNAL_PORT | 认证 |
| 8085 | DOCKER_WORLD_EXTERNAL_PORT | 世界 |
| 7878 | DOCKER_SOAP_EXTERNAL_PORT | SOAP |
比如 3306 被占,只需:
DOCKER_DB_EXTERNAL_PORT=3307 DOCKER_WORLD_EXTERNAL_PORT=8086 docker compose up -d仓库在docker-compose.yml头部明确提醒:不要直接改这个文件,长期修改应写入docker-compose.override.yml(conf/dist/docker-compose.override.yml下有现成模板)。
服务端行为配置在conf/dist/下(config.sh与环境变量文件env.ac),启动时容器会把默认配置复制到env/dist/etc。配置项缺失或非法时的处理策略可参考 doc/ConfigPolicy.md:每项可设为 skip、warn、error、fatal 四档,优先级为命令行参数 > 环境变量AC_CONFIG_POLICY>config.sh。
服务卡住了怎么办
先看日志定位,再按情况处理:
docker compose logs -f ac-worldserver docker compose down docker volume ls三种典型情况:
- 端口被占用:按上一节用环境变量换端口,或用
netstat -tulpn | grep 3306找出占用者。 - 启动日志顶部出现权限警告横幅:通常是仓库被以 root 克隆,容器内用户写不进配置和日志目录。在宿主机上
chown修正env/dist/目录归属;也可以设DOCKER_USER=root,但官方不建议。 - 想重置数据库:
docker compose down之后,用docker volume ls找到数据库卷(名称一般以项目目录名开头)删除,再docker compose up -d会重新导入。
下一步:试试开发模式
服务器跑稳之后,最值得试的一步是切换到开发 profile:docker compose --profile dev up -d会启动一个把你源码目录直接挂载进容器的开发环境,改代码、重新编译在容器内闭环完成,适合做二次开发。如果之后想往扩展方向走,可以从 modules/how_to_make_a_module.md 开始写你的第一个模块。
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考