FROM eclipse-temurin:21-jre-jammy # ── metadata ────────────────────────────────────────────── LABEL maintainer="your-username" LABEL description="Minecraft Java Server on Hugging Face Spaces" # ── env defaults (override in HF Space secrets / env vars) ─ ENV MC_VERSION="1.21.4" ENV MC_MEMORY="1G" ENV MC_MAX_MEMORY="2G" ENV MC_WORLD="world" ENV SERVER_PORT=25565 ENV EULA=true # ── system deps ─────────────────────────────────────────── RUN apt-get update && apt-get install -y --no-install-recommends \ curl wget jq ca-certificates \ && rm -rf /var/lib/apt/lists/* # ── create non-root user (HF Spaces requires uid 1000) ──── RUN useradd -m -u 1000 minecraft WORKDIR /home/minecraft # ── data directory (world saves, configs, logs) ─────────── RUN mkdir -p /data && chown -R minecraft:minecraft /data # ── copy scripts ────────────────────────────────────────── COPY --chown=minecraft:minecraft start.sh /home/minecraft/start.sh COPY --chown=minecraft:minecraft config/server.properties.template \ /home/minecraft/server.properties.template RUN chmod +x /home/minecraft/start.sh # ── switch to non-root ──────────────────────────────────── USER minecraft EXPOSE ${SERVER_PORT} ENTRYPOINT ["/home/minecraft/start.sh"]