Files
sfcraft/Dockerfile
iceBear67andClaude Opus 5.5 b8d4725e7b update 26.3 dependencies and pack mods
- polymer 0.18.0+26.3-rc-1 -> 0.18.2+26.3 (first 26.3 final build)
- fabric-api 0.160.5 -> 0.161.0, loom 1.18.1 -> 1.18.2
- pack: move squaremap, syncmatica, farmers-delight (+polymer patch),
  jei, worldedit, lithium to their 26.3 builds; bump fabric-api, polymer
- lithium now resolved from Modrinth instead of CurseForge (same mod, same author)
- docs: fix stale hurtMarked reference, drop carpet snapshot warning

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 03:14:03 +00:00

52 lines
3.0 KiB
Docker

FROM azul-zulu:25-jdk-alpine AS base
RUN apk update && apk add curl jq git
RUN curl -fsSLo /mc-server-runner.tar.gz https://github.com/itzg/mc-server-runner/releases/download/1.15.1/mc-server-runner_1.15.1_linux_amd64.tar.gz && \
tar -xzf /mc-server-runner.tar.gz -C / && \
rm /mc-server-runner.tar.gz && mv /mc-server-runner /usr/bin/mc-server-runner
RUN curl -fsSLo /packwiz-installer.jar https://github.com/packwiz/packwiz-installer-bootstrap/releases/download/v0.0.3/packwiz-installer-bootstrap.jar && \
curl -fsSLo /fabric-installer.jar https://maven.fabricmc.net/net/fabricmc/fabric-installer/1.1.1/fabric-installer-1.1.1.jar
COPY --from=hengyunabc/arthas:4.1.1-no-jdk /opt/arthas /opt/arthas
FROM base AS sfcraft-builder
COPY . /mod
RUN cd /mod && \
./gradlew shadowJar && \
cp /mod/build/libs/sfcraft-*-all.jar /sfcraft.jar
FROM base AS justbackup-builder
# 跟随 MC 版本的分支(默认分支仍是 26.2,fabric.mod.json 要求 minecraft ~26.2)。
# 分支不存在时这里会直接失败——刻意如此,比把 26.2 的 mod 打进 26.3 镜像、到加载时才报错好。
ARG JUSTBACKUP_REF=26.3
RUN git clone -b "$JUSTBACKUP_REF" https://github.com/saltedfishclub/justbackup /mod
RUN cd /mod && \
./gradlew build && \
rm -f /mod/build/libs/*sources.jar /mod/build/libs/*dev.jar && \
cp /mod/build/libs/justbackup-*.jar /justbackup.jar
FROM base AS carpet-builder
# 同上。carpet 的 depends 写的是 minecraft >26.2,旧分支能装上但 mixin 是按旧版编译的,
# 跑在 26.3 上会在 mixin apply 阶段炸,所以同样必须切到 26.3 分支(= 我们的补丁 + 合入上游 v26.3)。
ARG CARPET_REF=26.3
RUN git clone -b "$CARPET_REF" https://github.com/saltedfishclub/fabric-carpet /mod
RUN cd /mod && \
./gradlew build && \
rm -f /mod/build/libs/*sources.jar /mod/build/libs/*dev.jar && \
cp /mod/build/libs/*.jar /fabric-carpet.jar
FROM base
WORKDIR /deployment
COPY server-deploy/pack /deployment/pack
RUN MC_VERSION="$(grep '^minecraft' /deployment/pack/pack.toml | head -n1 | cut -d'"' -f2)" && \
LOADER_VERSION="$(grep '^fabric' /deployment/pack/pack.toml | head -n1 | cut -d'"' -f2)" && \
if [ -z "$MC_VERSION" ] || [ -z "$LOADER_VERSION" ]; then \
echo "failed to read minecraft/fabric version from pack.toml" >&2; exit 1; \
fi && \
echo "Installing Fabric server (MC=$MC_VERSION, loader=$LOADER_VERSION)" && \
java -jar /fabric-installer.jar server -mcversion "$MC_VERSION" -loader "$LOADER_VERSION" -downloadMinecraft
RUN java -jar /packwiz-installer.jar -g -s server /deployment/pack/pack.toml
COPY server-deploy/overrides /deployment
COPY --from=sfcraft-builder /sfcraft.jar /deployment/mods/sfcraft.jar
COPY --from=justbackup-builder /justbackup.jar /deployment/mods/justbackup.jar
COPY --from=carpet-builder /fabric-carpet.jar /deployment/mods/fabric-carpet.jar
VOLUME ["/deployment/config","/deployment/world","/deployment/logs","/deployment/crash-reports", "/deployment/squaremap", "/deployment/backups"]
ENTRYPOINT ["mc-server-runner", "/deployment/run.sh"]