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

资讯详情

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

docker-minecraft-server 使用 Quilt 模组加载器:TYPE=QUILT 部署指南

docker-minecraft-server 使用 Quilt 模组加载器:TYPE=QUILT 部署指南 docker-minecraft-server 使用 Quilt 模组加载器TYPEQUILT 部署指南【免费下载链接】docker-minecraft-serverDocker image that provides a Minecraft Server for Java Edition that automatically installs/upgrades versions, modloaders, modpacks and more at startup项目地址: https://gitcode.com/GitHub_Trending/do/docker-minecraft-server本指南围绕 itzg/minecraft-server 镜像的 Quilt 服务端模式展开介绍如何通过TYPEQUILT环境变量自动安装、升级并运行 Quilt 服务端并深入讲解QUILT_LOADER_VERSION、QUILT_INSTALLER_VERSION、QUILT_LAUNCHER等关键变量的作用与底层实现。读完本文你将掌握基于 docker run 与 Docker Compose 两种方式搭建 Quilt 服务器、锁定特定 loader/installer 版本、以及替换自定义启动器的完整实战方案。为什么需要 Quilt 模式Quilt 是一个基于 Fabric 生态演进而来的模组加载器平台兼容大量 Fabric 模组的同时提供了新的模组工具链。docker-minecraft-server 将 Quilt 作为一等公民的服务器类型TYPEQUILT支持启动容器时镜像会自动完成Quilt server launcher 的下载、Quilt loader 的注入、目标 Minecraft 版本的匹配以及最终的启动流程用户无需手动处理 jar 下载与安装过程。与 Fabric 模式 类似Quilt 模式同样具备「自动安装 / 自动升级」能力默认情况下容器会使用最新版的 quilt-installer针对VERSION环境变量指定的 Minecraft 版本默认是当前最新 vanilla 正式版安装最新版 Quilt server launcher。快速开始docker run 一行命令在 关联文档 中给出的最简用法是在 docker run 命令行中添加-e TYPEQUILTdocker run -d --pullalways \ -v /path/on/host:/data -e TYPEQUILT \ -p 25565:25565 -e EULATRUE --name mc itzg/minecraft-server几个参数的含义--pullalways始终拉取最新镜像配合后续的--pull机制保证升级到最新的镜像构建-v /path/on/host:/data将宿主机目录挂载为数据目录服务端 jar、世界存档、mods 与配置都保存在这里-e TYPEQUILT核心开关告诉启动脚本进入 Quilt 部署流程-e EULATRUE接受 Minecraft EULA容器启动的必要条件-p 25565:25565映射游戏端口。容器启动后启动脚本会走完 scripts/start →start-configuration→start-deployQuilt的调用链完成 Quilt 服务端安装后自动拉起游戏进程。锁定版本QUILT_LOADER_VERSION 与 QUILT_INSTALLER_VERSION默认情况下镜像始终使用最新版 loader 与 installer。如果你需要复现某个模组包要求的特定版本组合可以显式指定docker run -d --pullalways \ -v /path/on/host:/data ... -e TYPEQUILT \ -e QUILT_LOADER_VERSION0.16.0 \ -e QUILT_INSTALLER_VERSION0.4.1两个变量的职责环境变量作用默认值QUILT_LOADER_VERSION指定 Quilt loader模组加载器本体的版本LATESTQUILT_INSTALLER_VERSION指定 quilt-installer安装器的版本LATEST从 scripts/start-deployQuilt 的源码可以看到这两个变量的默认值定义与透传逻辑: ${QUILT_INSTALLER_URL:} : ${QUILT_INSTALLER_VERSION:LATEST} : ${QUILT_LOADER_VERSION:LATEST}随后它们被传入mc-image-helper install-quilt子命令function mc-image-helper-quilt(){ mc-image-helper install-quilt \ --loader-version$QUILT_LOADER_VERSION \ --minecraft-version$VERSION \ --output-directory/data \ --results-file$resultsFile $ }也就是说实际安装时是「loader 版本 Minecraft 版本来自VERSION默认LATEST」的组合安装结果输出到/data/.quilt.env即脚本中的resultsFile随后通过applyResultsFile回填到环境变量中供后续启动阶段使用。Minecraft 版本本身的取值规则详见 docs/versions/minecraft.md。使用自定义启动器QUILT_LAUNCHER 与 QUILT_LAUNCHER_URL关联文档 指出如果希望使用替代的启动器launcher有两种方式本地文件路径通过QUILT_LAUNCHER指定一个容器内可访问的启动器 jar路径相对于/data例如-e QUILT_LAUNCHERquilt-server-custom.jar远程 URL通过QUILT_LAUNCHER_URL指定启动器 jar 的下载地址例如-e QUILT_LAUNCHER_URLhttp://HOST/quilt-server-custom.jar。不过需要注意文档描述与当前仓库源码实现之间存在差异这一点从 scripts/start-deployQuilt 可以明确看到if [[ $QUILT_LAUNCHER ]]; then logWarning Use of QUILT_LAUNCHER is a deprecated feature. SERVER$QUILT_LAUNCHER export SERVER resolveVersion export FAMILYFABRIC exec $(dirname $0)/start-setupWorld $ elif [[ $QUILT_LAUNCHER_URL ]]; then logError QUILT_LAUNCHER_URL is not longer supported. Pre-download and use QUILT_LAUNCHER. exit 2据此可以确认以下实现事实QUILT_LAUNCHER仍然可用但已被标记为deprecated启动时输出警告日志。它会把自定义 jar 路径写入SERVER然后直接转入世界初始化流程相当于跳过「安装」环节、直接用你提供的 jar 启动QUILT_LAUNCHER_URL在当前源码中已不再受支持一旦设置会直接输出错误日志并以退出码 2 终止。正确做法是先把 jar 预下载到数据目录再改用QUILT_LAUNCHER指向它。因此如果你需要自定义启动器请以「预下载 jar 到/data下 设置QUILT_LAUNCHER」为准而不是依赖文档中仍保留的 URL 用法。源码级工作原理start-deployQuilt 的完整流程scripts/start-deployQuilt 是 Quilt 模式的部署核心其执行分支可归纳如下设置默认值初始化QUILT_LAUNCHER、QUILT_LAUNCHER_URL、QUILT_INSTALLER_URL、QUILT_INSTALLER_VERSION、QUILT_LOADER_VERSION见上文;分支一QUILT_LAUNCHER已设置—— 视为 deprecated 路径直接以自定义 jar 作为SERVER启动分支二QUILT_LAUNCHER_URL已设置—— 报错退出不再支持分支三QUILT_INSTALLER_URL已设置—— 调用mc-image-helper-quilt --installer-url$QUILT_INSTALLER_URL使用自定义安装器 URL 完成安装默认分支调用mc-image-helper-quilt --installer-version$QUILT_INSTALLER_VERSION按指定或最新installer 版本安装收尾applyResultsFile /data/.quilt.env将安装结果写回环境变量随后export FAMILYFABRIC并exec start-setupWorld进入世界初始化与最终启动阶段。值得注意的实现细节是Quilt 部署完成后镜像将家族标记为FAMILYFABRIC。这意味着后续的模组安装、数据包处理、世界目录管理会沿用与 Fabric 相同的生态约定Quilt 兼容 Fabric 模组 API 的设计在镜像层面也得到了体现。Docker Compose 方式与测试验证除了 docker run也可以直接在 compose 文件的服务environment中声明services: mc: image: itzg/minecraft-server environment: EULA: TRUE TYPE: QUILT VERSION: LATEST volumes: - ./data:/data ports: - 25565:25565仓库自带的 tests/setuponlytests/quilt/docker-compose.yml 就是一个可复现的最小验证用例services: mc: restart: no image: ${IMAGE_TO_TEST:-itzg/minecraft-server} environment: EULA: TRUE SETUP_ONLY: TRUE TYPE: QUILT VERSION: ${MINECRAFT_VERSION:-LATEST} volumes: - ./data:/data其中SETUP_ONLYTRUE表示只执行部署下载并安装 Quilt 服务端、生成必要文件而不真正启动游戏进程非常适合 CI 场景下的冒烟验证VERSION同样支持通过环境变量注入具体的 Minecraft 版本号。常见问题与注意事项版本组合不匹配某些旧模组包要求特定 Quilt loader 版本务必通过QUILT_LOADER_VERSION固定 loader 版本同时用VERSION锁定 Minecraft 版本避免“最新版”导致模组加载失败自定义启动器被拒若看到QUILT_LAUNCHER_URL is not longer supported错误请将 jar 预下载到/data挂载目录内改用QUILT_LAUNCHER相对路径升级行为未显式指定版本时容器每次重建都会尝试使用最新的 installer/loader 与 Minecraft 版本这是「自动安装 / 自动升级」设计的一部分Quilt 模组与配置Quilt 模式复用 Fabric 生态模组可直接放入/data/mods更完整的模组与插件安装方式请参阅 Working with mods and plugins 章节含 Modrinth、CurseForge、Spigot 等下载源的接入方式。【免费下载链接】docker-minecraft-serverDocker image that provides a Minecraft Server for Java Edition that automatically installs/upgrades versions, modloaders, modpacks and more at startup项目地址: https://gitcode.com/GitHub_Trending/do/docker-minecraft-server创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表