news 2026/9/19 20:07:43

AzerothCore-WoTLK Docker部署:3条命令起服

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AzerothCore-WoTLK Docker部署:3条命令起服

AzerothCore-WoTLK Docker部署:3条命令起服

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

自己搭一套魔兽世界私服,过去光配环境就要耗掉两个小时:装依赖、对数据库版本、查冲突。现在情况变了——AzerothCore-WoTLK 把整套服务端打包进了 Docker 容器,三条命令就能把服务拉起来。这篇部署教程按容器化流程走一遍,照着做即可跑通。

传统编译部署与 Docker 部署的差异速览

对比维度传统编译部署本文 Docker 部署
耗时环境配置+编译常超两小时首次构建 30-60 分钟,之后一键复跑
依赖管理手动逐条安装,易与系统版本冲突依赖全部打进镜像,与宿主机隔离
重置成本清库重配,牵一发动全身删容器删数据卷即可回到初始状态
环境一致性依赖本机环境,跨机器易翻车镜像标准化,换机器照常运行

差别的关键在于编译环境放进了镜像里,宿主机只负责跑容器。理解这一点后,下面所有操作都会很快。

开始部署前:AzerothCore 环境自检清单

  • Docker Engine 20.10 或更高版本,用docker --version确认
  • Docker Compose v2 或更高版本,用docker compose version确认
  • 项目代码已获取:
git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk

进入目录后执行ls,能看到 docker-compose.yml 与apps/目录即说明获取成功,后续所有命令都在这个目录下执行。

部署主线:构建、起服与创建管理员账号

四张任务卡按顺序执行,每一步都依赖上一步的产物。构建细节可参考 apps/docker/README.md。

任务卡 1:构建容器镜像
  • 命令:
docker compose build
  • 预期现象:首次构建约需 30-60 分钟,期间依次为 db-import、worldserver、authserver、client-data 各目标拉取依赖并编译,结束时没有报错。
  • 验证:回看输出末尾,各阶段均出现 Successfully built,无 ERROR 行。
  • 卡住了?:若构建中途因网络中断,重跑同一条命令即可,已完成的层会命中缓存,不会从头再来。

镜像就绪后就能拉起整套服务,compose 文件里已写死依赖顺序,启动先后无需自己操心。

任务卡 2:启动服务集群
  • 命令:
docker compose up -d
  • 预期现象:五个服务依次就位——ac-database(MySQL 数据库)、ac-db-import(数据库初始化)、ac-authserver(账号认证)、ac-worldserver(游戏世界)、ac-client-data-init(数据处理),首次启动时数据库导入会占掉一部分时间。
  • 验证:
docker compose ps
  • 卡住了?:看到 3306 端口绑定失败就是端口冲突,直接跳到下方"端口 3306 被占用"一节处理。

服务跑起来后,服务器里还没有任何可用账号,所以下一步是建管理员。

任务卡 3:创建管理员账号
  • 命令:
docker compose attach ac-worldserver
  • 预期现象:进入控制台后得到AC>提示符,输入account create admin password 3 -1,命令执行无报错即建号成功。
  • 验证:控制台正常返回AC>提示符,无异常输出。
  • 退出注意:离开控制台时先按Ctrl+P再按Ctrl+Q,不要按Ctrl+C——那会直接终止服务。
  • 卡住了?:如果误按Ctrl+C导致 worldserver 停止,重新执行docker compose up -d即可恢复。

如果你打算改服务端代码,可以切到开发模式;纯体验玩家可直接跳到就绪确认一节。

任务卡 4:切换到开发环境(可选)
  • 命令:
docker compose --profile dev up -d
  • 预期现象:ac-dev-server容器启动,本地代码目录被挂载进容器。
  • 验证:修改代码后执行
docker compose exec ac-dev-server cmake --build /azerothcore/var/build

构建通过即代表热更新链路可用。

  • 卡住了?:首次增量构建同样偏慢,失败时按输出中的编译报错逐行排查。

启动后如何确认服务全部就绪

满足以下两条,即可认为服务器就绪:

  • docker compose psac-databaseac-authserverac-worldserver三个常驻服务均为 Up(healthy)状态;
  • 一次性容器ac-db-importac-client-data-init已正常退出(Completed),这是初始化完成的标志而非故障。

此时默认端口 8085(world)与 3724(auth)已在宿主机监听,客户端可配置连接。

日常运维速查:看状态、查日志、改端口与备份

查看服务状态

docker compose ps # 一条命令看全部容器状态

查看实时日志

docker compose logs -f ac-worldserver # 跟踪世界服务器日志 docker compose logs -f ac-authserver # 跟踪认证服务器日志

修改数据库映射端口

echo "DOCKER_DB_EXTERNAL_PORT=3307" > .env && docker compose up -d # 3306 被占用时改映射到 3307

备份数据库

docker compose exec ac-database mysqldump -u root -ppassword acore_world > world_backup.sql # 导出 world 库,定期执行

日志文件同样会落在logs/目录,详细格式说明见 doc/Logging.md。

踩坑排查:按症状定位部署问题

端口 3306 被占用,数据库起不来

症状docker compose up -d报 bind: address already in use。原因是宿主机已有 MySQL 占用了默认端口。解法:

DOCKER_DB_EXTERNAL_PORT=3307 docker compose up -d

或把DOCKER_DB_EXTERNAL_PORT=3307写入.env文件后重启,效果持久。

worldserver 反复重启、客户端连不上

症状ac-worldserver状态持续为 restarting。原因多为ac-db-importac-client-data-init尚未完成,依赖条件不满足。解法:先docker compose ps确认两个初始化容器已 Completed,再重跑docker compose up -d

退出控制台后游戏服务停了

症状:attach 出来的控制台一关,ac-worldserver就停了。原因是退出时按了Ctrl+C,相当于向进程发了终止信号。解法:以后用Ctrl+P+Ctrl+Q离开;已经停了就docker compose up -d拉回。

首次启动久等无响应,疑似卡死

症状up -d执行后长时间无新输出。原因是首次构建要 30-60 分钟、首条数据库导入也偏慢,属正常节奏。解法:耐心等待即可,后续启动复用缓存,耗时明显下降。

进阶调优:3 件收益明显的事

  • 构建缓存:后续docker compose build自动复用已构建层,重复部署快很多。
  • 资源分配:按宿主机配置调整容器可分配的内存与 CPU。
  • 数据持久化:用上面的 mysqldump 命令定期备份关键数据库。

命令速查表

操作命令
构建镜像docker compose build
启动全部服务docker compose up -d
接入 worldserver 控制台docker compose attach ac-worldserver
查看服务状态docker compose ps
世界服务器日志docker compose logs -f ac-worldserver

现在打开魔兽世界客户端,用 admin 账号登录,进世界看看吧。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 20:07:18

神经网络代理模型加速火箭发动机结构动力学优化

简介:一份基于神经网络技术的火箭发动机结构动力学优化PDF文档,面向从事液体火箭发动机设计、结构动力学分析及机器学习数据建模的工程师、科研人员和研究生。该论文针对大推力液体火箭发动机研制中低频结构动力学频率优化的关键问题,提出以改…

作者头像 李华
网站建设 2026/9/19 20:04:43

Open Code Review:开源可审计的AI代码评审新范式

1. “open-code-review”不是工具名,而是正在发生的协作范式迁移最近在几个开源项目里做贡献时,我明显感觉到一种变化:PR(Pull Request)页面底部的评论区,不再只是“LGTM”“1”或者“建议加个空行”这类人…

作者头像 李华
网站建设 2026/9/19 20:04:33

Claude.ai 加 Kling MCP 生成视频,模型通道走 TaoToken 行不行?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 20:04:30

API 超时反复重试?TaoToken + Roo Code 这样验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 20:04:20

ADAS研发数据架构:从路测数据湖到仿真训练存储与网络设计

简介:面向汽车智能驾驶与IT基础架构规划人员的一份技术方案文档,聚焦先进驾驶辅助系统(ADAS)研发基础设施的构建。文档从汽车行业数字化转型切入,梳理全球ADAS发展状况与市场规模,剖析ADAS研发中面临的高带…

作者头像 李华