mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-10 16:04:04 +00:00
feat(server): complete phase 6 local verification
This commit is contained in:
+29
@@ -0,0 +1,29 @@
|
||||
# Local-only dedicated-server build and verification image. Pin the Godot
|
||||
# release family used by project.godot; no image is pushed by this repository.
|
||||
FROM --platform=linux/amd64 barichello/godot-ci:4.7.1 AS exporter
|
||||
WORKDIR /workspace
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends libfontconfig1 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
COPY Game /workspace/Game
|
||||
# Godot dedicated exports disallow command-line scene overrides. Bake the
|
||||
# server scene into this export (the interactive project's source stays
|
||||
# unchanged), then generate the global-script/autoload metadata it needs.
|
||||
RUN sed -i 's|^run/main_scene=.*$|run/main_scene="res://scenes/server_boot.tscn"|' Game/project.godot \
|
||||
&& godot --headless --editor --path Game --import --quit \
|
||||
&& mkdir -p /opt/cosmic-clash \
|
||||
&& godot --headless --path Game --export-release "Linux Dedicated Server" /opt/cosmic-clash/CosmicClashServer.x86_64
|
||||
|
||||
FROM --platform=linux/amd64 ubuntu:24.04 AS server
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends libfontconfig1 libgl1 libstdc++6 && rm -rf /var/lib/apt/lists/*
|
||||
COPY --from=exporter /opt/cosmic-clash/ /opt/cosmic-clash/
|
||||
COPY deploy/cosmic-clash-server /opt/cosmic-clash/cosmic-clash-server
|
||||
RUN chmod 0755 /opt/cosmic-clash/cosmic-clash-server
|
||||
WORKDIR /opt/cosmic-clash
|
||||
EXPOSE 7777/udp
|
||||
ENTRYPOINT ["/opt/cosmic-clash/cosmic-clash-server"]
|
||||
|
||||
# Test-only target: runs the source client harness against the exported server.
|
||||
FROM exporter AS smoke-client
|
||||
WORKDIR /workspace
|
||||
ENTRYPOINT ["godot", "--headless", "--path", "Game", "res://tests/export_server_smoke.tscn", "--"]
|
||||
Reference in New Issue
Block a user