当前位置: 首页 > news >正文

从 clone 到登录:三十分钟用 Docker 部署 AzerothCore 魔兽世界私有服

从 clone 到登录:三十分钟用 Docker 部署 AzerothCore 魔兽世界私有服

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

适合会用命令行、但没碰过魔兽世界服务器框架的读者。本文按实际仓库的docker-compose.yml走一遍 Docker 部署 AzerothCore 的流程,跑完后能用 3.3.5 客户端登录自己搭的服务器。

🚀 先说结果:三条命令之后的样子

clone 仓库、构建镜像、启动服务,一共三条核心命令。首次构建会在容器里用 cmake + ninja 从零编译整个引擎,视机器性能与网络,通常要 30 到 60 分钟;之后每次启动都是分钟级。最终得到的是:一个 MySQL 数据库、一个 authserver、一个 worldserver,外加生成好的配置与日志目录。建好管理员账号后,客户端就能直接登录。

跑之前看一眼

  • 装了 Docker 且带 Compose v2,Docker Desktop 已内置 buildx
  • 4GB 以上可用内存,全量编译比较吃内存
  • 20GB 以上空闲磁盘,镜像层加数据库卷都不小
  • 网络稳定,构建阶段和首次启动都要下载依赖与客户端数据
  • Linux、macOS 或 Windows + WSL2 均可

📦 这套东西是怎么拼的

服务对外端口一句话职责
ac-database3306MySQL 8.4,存放 auth/world/characters 三套库
ac-db-import一次性容器,把data/sql的数据导入数据库后退出
ac-client-data-init一次性容器,下载 DBC 等客户端数据到ac-client-data
ac-authserver3724登录握手与账号验证
ac-worldserver8085(7878为 SOAP)跑全部游戏玩法与地图逻辑

两个一次性容器是 worldserver 的前置条件,docker-compose.yml里用depends_on排好了顺序:先等数据库健康检查通过,再导数据、下载客户端数据,最后才拉起两个服务器,不用手动操心次序。文件注释明确提醒不要改主文件,所有端口、密码都支持环境变量覆盖,改动一律放docker-compose.override.yml

🔧 动手部署:三步把整套服务跑起来

第一步,取代码:

git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk

构建上下文就是仓库根目录,Dockerfile 位于apps/docker/内。

第二步,构建镜像:

docker compose build

这一步把源码完整编译一遍,是首次最慢的环节;镜像里启用了 ccache,后续重编译会快很多。

第三步,启动全部服务:

docker compose up -d

首次启动会卡在数据库导入上,耐心等docker compose ps里所有容器都变 running/healthy 即可。

进去之后:建管理员账号并验证登录

docker compose attach ac-worldserver

进入控制台后执行:

AC> account create admin admin123 3 -1

3是最高权限等级。退出控制台用 Ctrl+P 再按 Ctrl+Q,直接 Ctrl+C 会把容器停掉。建完记得改默认密码,然后让 3.3.5 客户端指向本机,应能在服务器列表里看到 realm。

日常运维速查

场景命令备注
看容器状态docker compose ps关注 healthy 状态
跟踪日志docker compose logs -f ac-worldserver排错第一站
安全停止docker compose down数据卷保留
完全重置docker compose down -v删光所有数据,慎用
重启单服务docker compose restart ac-worldserver改配置后常用

备份与恢复,root 密码默认是password,改过DOCKER_DB_ROOT_PASSWORD的自行替换:

docker compose exec ac-database mysqldump -u root -ppassword acore_world > world_$(date +%F).sql
docker compose exec -i ac-database mysql -u root -ppassword acore_world < world.sql

🛠️ 卡住了怎么办

  1. 症状:端口被占用,服务起不来 检查:sudo lsof -i :8085(3306、3724 同理) 处理:DOCKER_WORLD_EXTERNAL_PORT=8086 docker compose up -d,数据库用DOCKER_DB_EXTERNAL_PORT同理

  2. 症状:worldserver 反复重启或启动后立刻退出 检查:docker compose logs ac-worldserver处理:通常是数据库没就绪,等ac-db-import跑完再看docker compose ps

  3. 症状:客户端里看不到 realm 检查:docker compose logs ac-authserver处理:确认客户端指向的是本机 IP 且 3724 端口可达,本机一般填localhost即可

想继续折腾

  • 改端口:DOCKER_DB_EXTERNAL_PORTDOCKER_WORLD_EXTERNAL_PORTDOCKER_AUTH_EXTERNAL_PORT三个环境变量在up前带上即可。
  • 热更新:改了src/server/game/下的代码后,docker compose build ac-worldserver && docker compose restart ac-worldserver;仓库还带了一个挂载整个源码树的 dev profile,适合长期开发,见apps/docker/Dockerfile.dev-server
  • 写自定义模块:./modules/create_module.sh MyModule,模板和说明在modules/how_to_make_a_module.md

服务到这里就跑起来了,接下来一般可以先打开env/dist/etc/下首次生成的 worldserver 配置文件,把 realm 名字和玩家上限改成自己的(以实际仓库为准)。

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

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

http://www.cnnetsun.cn/news/4226432.html

相关文章:

  • C# Winform - SQL Server 2012 数据库放服务器,通过TCP连接访问
  • 如何用Dagger 2在Kotlin Android应用中实现依赖注入:基于PhotoAffix的完整教程
  • fb_graph认证全解析:Cookie解析与Signed Request的HMAC-SHA256验证原理指南
  • 为什么 Ornith-1.5-397B 效果忽好忽坏?temperature、top_p、top_k 采样参数调优完整指南
  • 5分钟上手psr/clock:从composer安装到第一个now()调用的快速教程
  • IntelliJ IDEA + phpStudy + ApiPost断点调试
  • 部署 FN-DSA 前:你必须了解的风险与权衡
  • 2026实测!梦琪科技拨号VPS排行,这3款性价比封神
  • 多模态模型也能当纯文本 LLM:InternVL3-2B-hf 无图文本生成快速入门
  • 公司电脑权限怎么管理?从账号、文件到软件,一套权限管理思路讲清楚
  • Status 拆解:19 天百万用户的 AI 社交模拟器如何炼成
  • Video2X AI 视频放大与补帧完整入门指南:从 480p 到 4K 成片
  • 华为MetaERP # EBS → Fusion BC 预算模块【业务规则对齐实施指南】定位:迁移蓝图「业务规则映射章节」标准内容,承接主数据映射、余额迁移、预算校验逻辑迁移。> > 核心结
  • PDF补丁丁:一个免费的PDF工具箱,搞定书签、合并、提图等8类编辑任务
  • 如何在React Native中使用react-timer-hook?移动App倒计时与秒表组件跨平台实战教程
  • 自己设计一道数独:LibreSudoku自定义出题功能完整流程演示
  • 基于SpringBoot的网购优选服务系统设计网站(源码+lw+部署文档+讲解等)
  • 反向工程nest-router源码:forRoutes背后的MODULE_PATH元数据魔法
  • 基于SpringBoot的甜品店在线点餐及预约系统毕业设计项目源码文档
  • 创维SK-L1002灵犀屏深度优化指南:免刷机安装第三方桌面,秒变流畅安卓机顶盒|手机一键操作|纯技术教程
  • ip-location-zh 完全指南:PHP 如何 3 分钟搞定无需数据库的 IP 地理位置查询?
  • MinIO 停止维护怎么办?Docker 迁移 RustFS 实战:数据零丢失
  • LX Music 桌面版:免费音乐聚合播放器完整指南
  • Outfit 字体完整指南:9 种字重免费商用,3 分钟装进系统
  • Shallows序列化能力清单:JSON、Plist与String存储映射全覆盖指南
  • 数字化转型全景解析:标准化、信息化、数字化与智能化的演进路径与实践指南
  • 为什么Intel放弃Hyperscan:Vectorscan项目背后的开源反击战
  • Java面试前,我建议你重点复习这几个核心知识点
  • 谷歌数据分析 V 笔记(二)
  • 2026年口碑出众的表型平台生产厂家盘点,值得你深入了解