| 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"] | |