用于 MohistMC Youer Minecraft 服务器(v1.21.1)的生产级 Docker 镜像,这是一个混合 Forge/Fabric + Bukkit 的服务器实现。支持独立模式和 PufferPanel 管理部署两种模式。
使用 PufferPanel 管理界面运行:
docker compose up -d为 AMD64 平台构建镜像:
docker buildx build --platform linux/amd64 -t youer-server .- 构建前必须在项目根目录放置
server-core.jar。这是 MohistMC Youer 服务器核心二进制文件。 - 必须安装 Docker Buildx(Docker Desktop 和较新版本的 Docker Engine 已包含)。
| 变量 | 默认值 | 说明 |
|---|---|---|
MEMORY |
8G |
分配给 JVM 的最大堆内存(例如:4G、8192M)。 |
EULA |
false |
设置为 true 以在首次启动时自动接受 Minecraft EULA。 |
JVM_FLAGS |
(无) | 额外的 JVM 参数(例如:-XX:+UseG1GC -XX:MaxGCPauseMillis=200)。 |
JAVA_OPTS |
(无) | 直接传递给 java 命令的额外 Java 选项。 |
服务器启动时,Java 选项按以下顺序应用(后指定的覆盖先指定的):
MEMORY设置-XmxJVM_FLAGS追加额外的 JVM 参数JAVA_OPTS追加最终覆盖参数
这意味着 JAVA_OPTS 优先级最高,其次是 JVM_FLAGS,最后是 MEMORY。
挂载数据卷到 /data 以在容器重启后持久化服务器状态:
-v ./data:/data/data 目录存储:
- 世界数据(
world/、world_nether/、world_the_end/) - 服务器配置(
server.properties、ops.json、whitelist.json等) - 模组和插件(
mods/、plugins/) - 日志文件(
logs/)
将模组 .jar 文件放置在主机的 /data/mods 目录中,服务器启动时会自动加载。
此镜像专为 linux/amd64 构建。
- 基础镜像为
ubuntu:24.04,通过 Azul 官方 APT 源安装zulu21-jre-headless。 - Ubuntu 24.04 (Noble) 自带 GLIBC 2.39,满足 PowerGrid (
GLIBC_2.38)、Rapier (GLIBC_2.27) 等所有 JNI 原生库的版本要求。 - 不支持 ARM64 及其他架构。
默认的 docker-compose.yml 包含 PufferPanel,用于基于 Web 的服务器管理。
在浏览器中打开:
http://localhost:8080
容器启动后,运行:
docker exec -it pufferpanel /pufferpanel/pufferpanel user add按照交互式提示创建管理员账户。
| 端口 | 服务 |
|---|---|
25565 |
Minecraft 服务器 |
8080 |
PufferPanel Web 界面 |
5657 |
PufferPanel SFTP 访问 |
PufferPanel 需要访问主机的 Docker 套接字(/var/run/docker.sock),以便为每个托管服务器启动同级容器。
若要在没有 PufferPanel 的情况下运行 Minecraft 服务器,请使用独立 Compose 文件:
docker compose -f docker-compose.standalone.yml up -d如果你只需要 Minecraft 服务器而不需要 Web 管理面板,此模式非常合适。
Create: Aeronautics 模组使用 Rapier 3D 物理引擎,该引擎通过 JNI 访问,需要 GLIBC 2.27 或更高版本。PowerGrid 模组的原生库需要 GLIBC 2.38。
此镜像基于 Ubuntu 24.04 (GLIBC 2.39),满足上述所有要求。镜像已额外安装 fontconfig、binutils 等运行时依赖,并在构建阶段执行 ldconfig 以注册系统库路径。启动脚本同时配置了 LD_LIBRARY_PATH 与 -Djava.library.path,覆盖 /tmp、/app/nativelibs 及默认路径。
Docker Compose 配置已固定 platform: linux/amd64 并放宽 seccomp 限制,避免 ARM 主机架构不匹配或 Docker 默认 seccomp 过滤器阻止 Rust FFI 系统调用。
| 组件 | 推荐版本 | 备注 |
|---|---|---|
| Create | 6.0.9 |
6.0.10 与 Sable 存在已知兼容性问题,需降级 |
| Sable | 1.0.6+ |
Create Aeronautics 的前置依赖 |
| Create Aeronautics | 1.1.3 |
与上述版本配对测试通过 |
| Java | 21 |
Java 24/25 会导致崩溃,必须使用 Java 21 |
如果你正在构建自定义基础镜像或在 GLIBC 版本较旧的主机上运行,请将 C 库升级至至少 2.38,以维持与 PowerGrid 等模组的兼容性。
此镜像以 root 用户运行。如需以非 root 用户运行,请自行在 Dockerfile 或 docker-compose 中配置 user 指令。