Files
pirate-dice/Dockerfile
2026-09-07 18:07:53 +02:00

31 lines
1.1 KiB
Docker

# Stage 1: Godot holen. Die Version steht hier, damit auf dem Server dieselbe
# läuft wie beim Entwickeln.
FROM debian:bookworm-slim AS godot
ARG GODOT_VERSION=4.7.2
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates curl unzip \
&& curl -fsSL -o /tmp/godot.zip \
"https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip" \
&& unzip -q /tmp/godot.zip -d /tmp \
&& mv "/tmp/Godot_v${GODOT_VERSION}-stable_linux.x86_64" /usr/local/bin/godot \
&& chmod +x /usr/local/bin/godot \
&& rm -rf /tmp/godot.zip /var/lib/apt/lists/*
# Stage 2: der Spielserver. Headless braucht kein X11 und kein OpenGL, Godot
# lädt die Bibliotheken erst bei Bedarf nach.
FROM debian:bookworm-slim
WORKDIR /app
COPY --from=godot /usr/local/bin/godot /usr/local/bin/godot
COPY project.godot ./spiel/
COPY scenes ./spiel/scenes
COPY scripts ./spiel/scripts
# Einmal beim Bauen importieren, sonst tut das der erste Raum - und der
# Spieler wartet.
RUN godot --headless --path /app/spiel --import
EXPOSE 8000
CMD ["godot", "--headless", "--path", "/app/spiel", "--", "server", "8000"]