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