15分钟跑起一台可玩的AzerothCore-WoTLK:Docker部署完整指南
2026/9/19 12:03:34 网站建设 项目流程

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_authacore_charactersacore_world三个数据库。

游戏数据落在具名卷里,镜像重建后数据不会丢,这也是你之后可以放心折腾的前提。

容器集群里到底在跑什么

docker-compose.yml定义了 5 个容器,其中 3 个常驻、2 个是一次性任务:

容器职责对外端口
ac-databaseMySQL 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 上通过发行版包管理器安装即可)。

  1. 拿到源码并进入目录:
git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk
  1. 构建镜像:
docker compose build

首次构建最耗时间:要拉取全部依赖并编译服务端源码,几十分钟属正常现象。得益于镜像层缓存,之后的小改动重建会快很多。

  1. 启动集群:
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(管理员级别)。用客户端登录后,可通过游戏内指令创建角色、设置出生地图。

端口冲突怎么解,配置改在哪里

端口冲突是最常见的卡点。所有对外端口都支持环境变量覆盖:

默认端口环境变量用途
3306DOCKER_DB_EXTERNAL_PORT数据库
3724DOCKER_AUTH_EXTERNAL_PORT认证
8085DOCKER_WORLD_EXTERNAL_PORT世界
7878DOCKER_SOAP_EXTERNAL_PORTSOAP

比如 3306 被占,只需:

DOCKER_DB_EXTERNAL_PORT=3307 DOCKER_WORLD_EXTERNAL_PORT=8086 docker compose up -d

仓库在docker-compose.yml头部明确提醒:不要直接改这个文件,长期修改应写入docker-compose.override.ymlconf/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),仅供参考

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

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

立即咨询