尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Docker 部署 AzerothCore 完整实战:3 步跑通 WoTLK 服务器

Docker 部署 AzerothCore 完整实战:3 步跑通 WoTLK 服务器 Docker 部署 AzerothCore 完整实战3 步跑通 WoTLK 服务器【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk手动编译 MMO 服务器源码是劝退体验装半天依赖、编译两小时、第一次就报链接错误。Docker 部署 AzerothCore 能把这些坑大部分绕开。AzerothCore-WoTLK 是一套完整开源的魔兽世界 3.3.5WoTLK服务器方案仓库自带一份现成的 docker-compose.yml照着走一遍一次会话内起齐数据库、认证、世界三个服务用管理员账号直接登录。环境准备部署前检查清单动手前把清单过一遍。官方 Dockerfile 依赖 BuildKit 的 cache mount 做编译缓存所以必须用Docker Compose v2和buildx老版docker-composev1 跑不起来。项目最低要求说明Docker 引擎24.0 以上Docker Desktop 4.x 自带Composev2 插件命令是docker compose不带连字符buildx必须提供 BuildKit 与 cache mount 能力操作系统Linux / WSL2 / macOSWindows 原生环境网络坑多磁盘≥ 30 GB镜像 构建缓存 游戏数据内存≥ 8 GB容器内并行编译吃内存在终端执行docker compose version docker buildx version两条都能打印出版本号就开工。三步极速部署跑通 Docker 部署 AzerothCore三步各一条命令每步都有明确的完成标志任何时刻都能判断自己是否卡住。WoTLK 服务器搭建全程的时间大头在构建那一步提前开始。拉取代码构建上下文是整个仓库Dockerfile 会把 src、deps、modules 等目录拷进镜像所以要完整克隆。git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk克隆完可以扫一眼根目录docker-compose.yml、apps/docker/Dockerfile、data/sql三个关键位置都应在场。网络无法直连外源时先配置代理或换可达的镜像源镜像构建期间的下载apt 包、客户端数据都走宿主机网络代理在系统层设好即可。构建镜像Dockerfile 在 Ubuntu 24.04 上用 CMake Ninja ccache 编译全部 C 代码产出 authserver、worldserver、dbimport、client-data 等各自独立的镜像。docker compose build提示首次构建耗时 30–60 分钟视机器性能而定。编译缓存由 BuildKit cache mount 保存之后构建只重编变更层通常几分钟。想换编译类型默认 RelWithDebInfo可加--build-arg CTYPERelease牺牲调试信息换更快的编译和更小的镜像。启动并验证启动时 Compose 按depends_on自动编排数据库先通过healthcheck一次性导入任务跑完两个常驻服务才会拉起。注意ac-database用的是官方 mysql:8.4 镜像并非本地构建。docker compose up -d docker compose ps首次启动偏慢ac-db-import要导入 data/sql 里的基线 SQLac-client-data-init要下载并解析客户端数据等 10–30 分钟都正常。成功标志看docker compose psac-database状态healthyac-db-import、ac-client-data-init状态Exited (0)ac-authserver、ac-worldserver状态Up。如果 worldserver 反复重启先跑docker compose logs ac-worldserver抓第一段报错多数是数据库没就绪或客户端数据缺失。架构透视Docker 部署 AzerothCore 的服务拓扑一共 5 个容器其中两个是一次性任务跑完自动退出。服务职责端口持久化方式ac-databaseMySQL 8.4存放 acore_auth / acore_world / acore_characters 三个库3306命名卷ac-databaseac-db-import一次性导入 SQL 基线并执行增量更新—无SQL 随仓库 data/sql 提供ac-client-data-init一次性下载并解析客户端数据dbc、Cameras—命名卷ac-client-dataac-authserver玩家登录认证3724配置目录env/dist/etcac-worldserver游戏核心逻辑地图、战斗、副本8085游戏、7878SOAP配置 日志目录调用链是这样的玩家客户端先连ac-authserver:3724完成账号校验再由ac-worldserver:8085接管游戏会话。两个常驻服务都声明了对数据库健康检查和ac-db-import成功完成的依赖数据先就绪、服务后启动由 Compose 保证。两个一次性容器在docker compose ps里显示Exited (0)是正常且健康的信号。首次登录创建管理员账号与核心配置三个服务都 Up 之后接入 worldserver 控制台创建第一个管理员账号docker compose attach ac-worldserver在AC提示符下执行创建命令AC account create admin your_password 3 -1两个数字参数3是 GM 等级3 级即管理员-1表示账号 ID 由系统自动分配your_password换成你的真实密码。⚠️注意退出控制台时先按CtrlP、再按CtrlQ分离直接按 CtrlC 会向 worldserver 发送 SIGINT进程会崩掉服务需要重新拉起。首次启动后容器会把镜像内的参考配置同步到宿主机的env/dist/etc值得关注的有三项LoginDatabaseInfo认证库连接串格式为 主机;端口;用户;密码;库名Docker 下由环境变量自动注入、WorldPort游戏端口默认 8085、AuthserverAddress客户端视角的认证地址。改完 conf 执行docker compose restart ac-worldserver生效。管理日常运维日志、启停、备份、改端口查看运行日志worldserver 的日志同时输出到 stdout 和日志目录docker compose logs是最快的定位手段# 实时跟踪 worldserver 日志 docker compose logs -f ac-worldserver # 查看所有服务健康状态 docker compose ps启停与重置服务数据都在命名卷和宿主目录里常规停止不丢东西只有带-v才会删卷# 优雅停止保留数据 docker compose down # 再次启动 docker compose up -d # 完全重置删除所有卷含数据库 docker compose down -v备份与恢复数据库大改之前建议先备份数据库容器自带 mysqldump# 备份世界数据库 docker compose exec ac-database mysqldump -u root -pyour_password acore_world backup_world.sql # 恢复替换成你自己的转储文件 docker compose exec -i ac-database mysql -u root -pyour_password acore_world backup_world.sql端口冲突排查对外端口全部由环境变量控制DOCKER_DB_EXTERNAL_PORT3306、DOCKER_AUTH_EXTERNAL_PORT3724、DOCKER_WORLD_EXTERNAL_PORT8085、DOCKER_SOAP_EXTERNAL_PORT7878。本机 3306 被占用时启动时直接覆盖# 把数据库端口改为 3307 DOCKER_DB_EXTERNAL_PORT3307 docker compose up -d想长期生效官方建议新建docker-compose.override.yml写入覆盖项不动原文件。故障诊断速查现象可能原因解决操作ac-db-import 长时间不退出首次基线导入慢数百 MB SQL等 10–30 分钟docker compose logs ac-db-import看进度提示端口已被分配3306/8085 被本机服务占用用DOCKER_DB_EXTERNAL_PORT/DOCKER_WORLD_EXTERNAL_PORT重映射docker compose build 失败网络不通apt 或下载阶段中断配代理后重新 buildcache mount 让二次构建更快worldserver 反复重启客户端数据缺失或配置错误确认ac-client-data-init是Exited (0)再docker compose logs ac-worldserver数据全部丢失down -v误删了命名卷用 mysqldump 备份恢复没有备份只能down -v重走全流程进阶开发容器需要改源码并观察效果时一条命令启动 dev profiledocker compose --profile dev up -dac-dev-server会把整个仓库挂载进容器构建产物缓存在专用卷里改完源码在容器内重新编译、重启即可生效。要求 Linux / WSL2 等 ext 系文件系统否则 IO 等待会很痛苦。到这里Docker 部署 AzerothCore 的闭环就完整了一条命令起全套一条命令全清掉数据在卷里、配置在盘上整套流程也是魔兽世界私服容器化的最小范例。下一步用 3.3.5 客户端指向服务器 IP登录你的管理员账号用tele传送到暴风城确认整条链路丝滑可用。【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表