资讯动态

如何在单机上用 Docker 快速跑通 AzerothCore-WoTLK 魔兽世界服务器

发布时间:2026/9/19 15:54:32 来源:尧图企业网站定制
如何在单机上用 Docker 快速跑通 AzerothCore-WoTLK 魔兽世界服务器【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlkAzerothCore-WoTLK 是一套开源、模块化的魔兽世界 3.3.5巫妖王之怒游戏服务器覆盖账号认证、世界逻辑、地图、副本与竞技场等完整 MMO 玩法。本文不讲编译细节只讲一件事在一台装了 Docker 的机器上用约 15 分钟把它以容器方式部署起来最终得到一个魔兽世界客户端可以正常登录的服务器。环境准备开始前确认三样东西Docker Engine Docker Compose v2 buildx。Docker Desktop 自带全套Linux 上用发行版包管理器装即可稳定的网络首次构建要下载构建依赖启动时还要下载地图、可视地图等客户端数据磁盘余量源码、构建缓存加导入数据合计数 GB耗时预期首次docker compose build需要 30-60 分钟因为要在 Ubuntu 24.04 镜像里完整编译 C 服务端之后有 Docker 层缓存和 ccache 加持重新构建会快很多。本机不需要装任何编译工具链。部署主线准备工作确认后整个部署就三步拉源码、构建镜像、启动服务。拉取源码git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk仓库根目录直接带着docker-compose.yml官方容器化说明在 apps/docker/README.md与下面的命令完全一致。构建镜像docker compose build这一步会把 worldserver、authserver、dbimport 等程序编译进各服务镜像。第一次最慢耐心等待即可中途如果断网直接重跑已完成的层会被缓存复用。启动服务docker compose up -d docker compose ps编排文件里内置了依赖顺序ac-database 先通过 MySQL 健康检查然后一次性容器 ac-db-import 导入 auth、world、characters 三个库并退出ac-client-data-init 下载客户端数据最后 ac-authserver 与 ac-worldserver 才启动。首次启动在这一步要等几分钟看到几个容器显示 Exited (0) 是正常现象那是任务型容器跑完了。常驻服务及其端口如下容器对外端口职责ac-database3306MySQL 8.4存放三个游戏数据库ac-authserver3724账号登录认证ac-worldserver8085另有 7878 为 SOAP 接口世界逻辑、地图与玩法验证是否跑通用两个标准判断部署是否成功容器内建号、客户端能进游戏。先附着到 worldserver 控制台创建一个 GM 账号等级 3 为管理员-1 表示绑定 1 号世界docker compose attach ac-worldserver AC account create admin password 3 -1建好后按 CtrlP 再按 CtrlQ 脱离控制台不会中断服务。然后在客户端里填入服务器 IP、3724 端口用刚才的账号登录能看到角色创建界面就说明整套链路——认证、数据库、世界服务——全部通了。顺带说明配置层级环境变量 配置文件 内置默认值配置文件的加载策略与严重级别可在 doc/ConfigPolicy.md 查到日常部署一般不用碰它。高频定制跑通之后日常最常改的无非三类端口、数据、模块。修改端口映射与数据库密码仓库约定不改docker-compose.yml本身所有变量放根目录.env文件完整变量清单见 conf/dist/env.dockerDOCKER_DB_EXTERNAL_PORT3307 DOCKER_WORLD_EXTERNAL_PORT8086 DOCKER_AUTH_EXTERNAL_PORT3725 DOCKER_DB_ROOT_PASSWORDchange-me写好后docker compose up -d重启即生效。改密码要注意compose 会把它代入所有服务的数据库连接串所以三个服务会一起用新密码。数据库备份与恢复备份就是把容器内 mysqldump 的输出重定向到宿主机docker compose exec ac-database \ mysqldump -uroot -pchange-me \ --all-databases acore_$(date %Y%m%d).sql恢复时把文件再灌回 mysql 客户端即可docker compose exec -T ac-database \ mysql -uroot -pchange-me acore_20260918.sql加载自定义模块AzerothCore 按模块组织扩展功能。在modules/目录运行create_module.sh会交互式生成一个模块骨架随后按 modules/how_to_make_a_module.md 添加脚本逻辑并在模块 CMake 里注册。改完模块后重新docker compose build docker compose up -d新模块默认以静态方式编入服务端无需额外配置加载。排障速答Qac-worldserver 反复重启或直接退出先docker compose logs ac-worldserver看最后一行。最常见两类挂载目录不可写通常是用 root 克隆了仓库启动脚本会直接打印 chown 修复命令或数据库还没导完确认 ac-db-import 状态为 Exited (0) 再看 worldserver 日志。Q3306 或 8085 端口被占用在.env里改DOCKER_DB_EXTERNAL_PORT、DOCKER_WORLD_EXTERNAL_PORT即可容器内部端口不变服务间通信不受影响。Q想清档重来docker compose down docker volume rm ac-database docker compose up -d这会删除全部账号与角色数据ac-db-import 会在下次启动时重新导入操作前记得先按上文备份。到此一套完整的 AzerothCore-WoTLK MMO 服务器已经在单机上跑起来了日常运维只需要 docker compose 这一组命令。后续如果要改代码或写模块可以把--profile dev的 ac-dev-server 服务挂出来让容器内直接引用宿主机源码构建想深入了解配置与日志体系从 doc/ConfigPolicy.md 和 doc/Logging.md 入手即可。【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价