AzerothCore魔兽世界私服Docker部署教程:4步跑通3.3.5完整服务器
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
AzerothCore 是一个完整的开源 MMO 服务器方案,运行魔兽世界 3.3.5(WoTLK)版本的服务端逻辑。这篇 Docker 部署教程带你走四条主线:环境自检、一键构建、启动服务、登录验证——全部完成后,你的 3.3.5 客户端就能直接连进自己搭的魔兽世界私服。
环境自检:3条命令确认你能开工
开工前不用急着装任何东西,先把下面的清单过一遍。Docker 镜像里已经内置了 MySQL 8.4、clang 编译器、CMake 构建工具链和数据库导入工具,你唯一需要自己准备的是 Docker 本身和一个客户端。
你需要的:
| 检查项 | 要求 | 为什么重要 |
|---|---|---|
| 操作系统 | Linux / macOS / Windows (WSL2) | 镜像基于 Ubuntu 24.04,跨平台无差别 |
| Docker + Compose v2 | 已安装且插件可用 | 整个部署全靠它编排 |
| 端口 3306 / 3724 / 8085 / 7878 | 宿主机空闲 | 分别对应数据库、认证、游戏、SOAP 接口 |
| 磁盘空间 | ≥ 30GB | 首次构建要在容器里完整编译一遍源码 |
| 客户端 | 魔兽世界 3.3.5 版本 | 最后登录验证用 |
你完全不用手动装的:MySQL、编译工具链、数据库导入脚本、客户端数据下载工具——这些都由 apps/docker/Dockerfile 里的多阶段构建自动完成。
跑两条命令做最终自检,都能正常输出就可以继续:
docker compose version # 能输出版本号说明 Compose v2 插件就绪 docker ps # 不报错说明 Docker 守护进程正常运行一条主线跑起来:克隆、构建、启动
接下来三步是连贯的,每步都有明确的"完成信号",你可以随时对照确认进度。
第 1 步:拉取源码
git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk第 2 步:构建镜像
docker compose build这一步会同时构建出 worldserver、authserver、数据库导入和客户端数据初始化等一整套镜像,全部在 Ubuntu 24.04 容器里用 CMake + Ninja + clang 编译,还启用了 ccache 加速。首次构建预计 30~60 分钟,期间终端会滚动输出编译日志,这属于正常现象,别中断。构建完成后跑docker images,能看到acore/ac-wotlk-worldserver、acore/ac-wotlk-authserver等镜像就说明成功了。得益于构建层缓存,之后你改代码再构建会快很多。
第 3 步:启动全部服务
docker compose up -d首次启动预计 5~15 分钟,别以为"没动静"就是卡住了——编排文件里有严格的启动依赖链:MySQL 先起来并通过健康检查,然后ac-db-import容器把 data/sql 下的基础数据和升级脚本依次导入acore_auth、acore_world、acore_characters三个库,worldserver 和 authserver 在这两步都完成后才会被拉起。观察进度的方式:
docker compose logs -f ac-db-import # 会看到一条条 SQL 导入记录滚过另外,容器首次启动时 entrypoint 脚本 会自动把内置的*.conf.dist配置模板复制为正式配置,落到宿主机的env/dist/etc/目录,所以你不需要手写任何配置文件。
30秒确认成功:状态、账号、客户端三连验
① 状态检查:三个常驻容器都应该是Up:
docker compose ps② 成功标志:worldserver 日志尾部出现 "Server ready" 字样,代表它已准备好接收连接:
docker compose logs ac-worldserver | tail -n 20③ 创建管理员账号:attach 会把你接进 worldserver 的命令行控制台,3是管理员安全等级,-1表示不限地图权限。创建成功后按Ctrl+P再按Ctrl+Q脱离,别按 Ctrl+C,那会把服务一起停掉:
docker compose attach ac-worldserver AC> account create admin password 3 -1④ 客户端实战:打开魔兽世界 3.3.5 客户端,登录界面服务器地址填127.0.0.1(客户端不在同一台机器就填宿主机局域网 IP)。服务器列表里出现 realm 后,用 admin / password 登录、建角、进图——能稳定加载角色和场景,整个部署就闭环了。
看清内部:谁在监听哪个端口
登录成功后你可能会好奇这些容器各管什么,一张表说清楚:
| 容器 | 监听端口 | 职责 | 数据存放位置 |
|---|---|---|---|
ac-database | 3306(映射到宿主机) | MySQL 8.4,承载账号/角色/世界三套数据,root 密码为password | Docker 卷ac-database(/var/lib/mysql) |
ac-authserver | 3724 | 客户端第一个连接它做账号验证,通过后引导客户端连世界服 | 配置在env/dist/etc/authserver.conf |
ac-worldserver | 8085(游戏)、7878(SOAP 外部接口) | 加载世界数据,处理全部游戏逻辑 | 配置在env/dist/etc/worldserver.conf,客户端数据在 Docker 卷ac-client-data |
ac-db-import/ac-client-data-init | 无 | 一次性任务容器:导入数据库、初始化客户端数据,完成后即退出 | — |
三者共享同一个容器网络通信;只有 3306 默认映射到宿主机,方便你本地连库查询。
自救手册:症状对照表
| 症状 | 可能原因 | 处理办法 |
|---|---|---|
| worldserver 反复重启,日志有 WARNING | 源码以 root 克隆,挂载的env/dist目录属主是 root,容器内用户写不进配置和日志 | 宿主机执行sudo chown -R $(id -u):$(id -g) env/dist后重启容器 |
| 客户端登录界面看不到 realm | 3724 或 8085 没映射到宿主机,或客户端地址填错了机器 | 宿主机执行ss -tlnp \| grep -E '3724\|8085'确认监听;客户端改填宿主机 IP |
| 等十几分钟 worldserver 还没起来 | ac-db-import仍在导入(首次 5~15 分钟属正常),或 MySQL 未通过健康检查 | docker compose logs -f ac-db-import看进度;若失败,按日志末尾报错指向的 SQL 文件排查 |
docker compose up报端口绑定失败 | 宿主机 3306 被已有 MySQL 等占用 | 项目根目录建.env写入DOCKER_DB_EXTERNAL_PORT=3307,重启后改用 3307,容器内部连接不受影响 |
| 改了配置重启却不生效 | 只改了*.conf.dist模板,而正式配置是首次启动时复制生成的,模板仅在目标文件不存在时生效 | 直接编辑env/dist/etc/worldserver.conf等正式文件再重启 |
再深入:改端口、调配置、写第一个模块
三个进阶入口,每个都只动一两行:
改端口——在根目录.env里覆盖映射即可,容器内部端口不用动:
# .env(项目根目录,按需写入) DOCKER_WORLD_EXTERNAL_PORT=8086 DOCKER_AUTH_EXTERNAL_PORT=3725调配置——日常只动env/dist/etc/worldserver.conf里的关键参数,比如PlayerLimit(默认 1000,即最大在线人数),模板见 worldserver.conf.dist。配置的加载策略和预设分级可以参考官方配置策略文档。
写模块——用仓库自带脚本生成模块骨架,启用后重新构建镜像即可:
./modules/create_module.sh MyModule # 交互式生成模块骨架 echo "MyModule.Enabled = 1" > env/dist/etc/modules/MyModule.conf docker compose build && docker compose up -d模块开发的完整思路见 how_to_make_a_module.md。
收尾
到这里,数据库、认证、世界三件套已经在容器里稳定运转,3.3.5 客户端也能正常登录——你的魔兽世界私服算是正式上线了。下一步建议:挑modules/下生成的骨架改出一个实际功能(比如一条自定义世界指令或一个任务),体验从部署到二次开发的完整闭环;想动手前也可以先用docker compose logs -f观察一段时间的世界服运行日志,对服务端的日常状态有个直觉。
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考