15分钟跑通AzerothCore容器化部署

发布时间:2026/9/19 5:14:18
15分钟跑通AzerothCore容器化部署 15分钟跑通AzerothCore容器化部署【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk终端里刷着大段编译日志十分钟后ac-worldserver却还在重启循环——如果你第一次看到 AzerothCore 容器化部署的场面多半会以为搞砸了。其实这就是正常节奏把一整套魔兽世界 WotLK 私服服务端账号认证、游戏世界、数据库塞进 Docker 里编译启动本来就不快。这篇帮你把整条流程走通并且知道每一步在等什么。你能拿到什么时间花在哪一个能登录的 WotLK3.3.5私服认证端口3724游戏端口8085三个常驻容器ac-database/ac-authserver/ac-worldserver数据落在 Docker 卷里一个超级管理员控制台账号创建只需 30 秒时间预算首次docker compose build约 30~60 分钟在容器里编译全部 C 源码首次up还要多等几分钟做数据库导入之后再启动一分钟以内前提装好 Docker Desktop或 Linux 上的 docker compose v2 buildx部署主线四条命令走完先拉源码到本地整个流程都在这个目录里操作git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk仓库是只读参考后面所有改动都不落在它身上放心。接下来构建镜像首次编译耗时最长让它挂着跑就行后续构建有 Docker 层缓存会快很多docker compose build构建完成后启动服务集群。首次启动时编排文件会先等数据库健康检查通过再跑一次性的ac-db-import容器导入acore_auth、acore_world、acore_characters三个库然后才拉起 auth 和 worldserver所以耐心等它跑完docker compose up -d全部变绿后挂进 worldserver 控制台创建管理员账号3是最高权限等级docker compose attach ac-worldserver在出现的AC提示符下执行account create admin password 3 -1然后按CtrlP再按CtrlQ脱离注意是脱离不是杀掉容器直接 CtrlC 会停服。最后用docker compose ps确认ac-database、ac-authserver、ac-worldserver都在运行客户端指向本机 3724 端口就能登录了。它到底怎么跑的整个集群就是一个门口验票员 一个大剧院 一间仓库。ac-authserver是验票员只负责回答这个账号密码对不对、能不能进ac-worldserver是剧院所有游戏逻辑——战斗、掉落、任务、聊天——都在它里面跑ac-database是仓库账号、角色、世界数据统统存进 MySQL 的三个库里。客户端登录时先找 3724 验票通过后切到 8085 进游戏世界服务一边跑逻辑一边把变更写回数据库。WotLK 客户端 → ac-authserver :3724 账号验证 → ac-worldserver :8085 游戏逻辑常驻 ↔ ac-database :3306 acore_auth / acore_world / acore_characters也就是说你平时只需要跟 worldserver 打交道数据库基本不用碰。创建管理员、改配置、锁端口管理员账号上面已经建好数据存在acore_auth库改密码同样进控制台执行account set admin password 新密码。配置文件的实际位置有个容易踩坑的设计容器首次启动时entrypoint 脚本会把镜像里/azerothcore/env/ref/etc/的*.conf.dist模板复制到宿主机的./env/dist/etc/目录生成worldserver.conf、authserver.conf等文件。所以你改配置永远改的是这个本地目录下的文件改完docker compose restart对应服务即可仓库源码一个字都不用动。端口和密码不要动docker-compose.yml本体文件头部就写着别改它。正确姿势是二选一在项目根目录新建docker-compose.override.yml覆盖conf/dist/下有个现成空模板可以参考或者直接用环境变量DOCKER_DB_EXTERNAL_PORT3307 DOCKER_WORLD_EXTERNAL_PORT8086 \ DOCKER_DB_ROOT_PASSWORD你的强密码 \ docker compose up -d默认对外暴露 4 个端口3306数据库、3724认证、8085游戏、7878SOAP 接口。⚠️ 默认数据库密码就是password只要服务要开到局域网第一件事就是把DOCKER_DB_ROOT_PASSWORD改掉。网络层面不用额外折腾所有容器都挂在内部网络ac-network上数据库本身不额外监听外网关掉 3306 映射后外部根本碰不到它只留 3724 和 8085 给玩家客户端就够了。三个大概率会用的场景开发热更新。背景你在改 C 服务端代码每次改完重新走编译镜像→起容器太慢想要一个改完就地生效的环境。docker compose --profile dev up -d这会拉起ac-dev-server把整个本地仓库目录挂载进容器的/azerothcore编译、调试都在容器里对着本地文件做官方建议 Linux / WSL2 等 ext 系文件系统避免绑定挂载的性能问题。预期效果auth / world / soap 三个端口照常暴露但二进制由你在容器内现场编译。数据备份。背景准备改大配置或升级版本前先给三个库拍张快照心里才有底。docker compose exec ac-database \ mysqldump -u root -ppassword --all-databases \ acore_backup_$(date %Y%m%d).sql预期效果当前目录多出一个 SQL 文件几十 MB 量级。恢复时把它mysql 文件灌回去即可数据卷还在的话记得先docker compose down停库。加一个自己的模块。背景你想塞一段自定义玩法进去AzerothCore 的扩展方式就是模块化。cd modules ./create_module.sh MyCustomModule脚本会交互式地问模块名然后生成一套可编译的模块骨架。写完代码后重新构建 worldserver 镜像并重启新模块就编进去了docker compose build ac-worldserver docker compose up -d卡住了这样排查现象ac-worldserver反复重启客户端连不上。一条命令docker compose logs ac-worldserver解法两种最常见原因。一是你以 root 克隆了仓库宿主机上env/dist/etc和env/dist/logs属于 root容器内用户写不进去日志开头会打印大段 WARNING按提示对这两个目录执行chown即可二是等不及——首次启动要等数据库导入完多等一两分钟再看。现象提示端口被占用容器起不来。一条命令netstat -tlnp | grep 3306解法本机已经有个 MySQL 占着 3306。用DOCKER_DB_EXTERNAL_PORT3307把对外映射改掉再up -d容器内端口不用动。现象worldserver 启动秒退日志报数据库连接失败。一条命令docker compose ps解法看ac-database的状态它必须先达到(healthy)。没到就看docker compose logs ac-database找原因多数是密码环境变量没传对导致 healthcheck 一直失败。跑通登录那一刻你就有了一台随时可以down再up的私有 WotLK 世界。下一步别停着去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),仅供参考