diff --git a/.gitea/workflows/dev-deploy.yaml b/.gitea/workflows/dev-deploy.yaml index 13c4a92..d24f9bf 100644 --- a/.gitea/workflows/dev-deploy.yaml +++ b/.gitea/workflows/dev-deploy.yaml @@ -100,9 +100,10 @@ jobs: - name: Bring up the stack working-directory: tools/dev-deploy - env: - GALAXY_DEV_GAME_STATE_DIR: ${{ env.HOME }}/.galaxy-dev/game-state run: | + # Resolve in the shell, not in YAML expressions — `env.HOME` + # is empty at the workflow-evaluation stage. + export GALAXY_DEV_GAME_STATE_DIR="$HOME/.galaxy-dev/game-state" mkdir -p "$GALAXY_DEV_GAME_STATE_DIR" docker compose up -d --wait --remove-orphans diff --git a/tools/dev-deploy/docker-compose.yml b/tools/dev-deploy/docker-compose.yml index 5a449df..a6e4e67 100644 --- a/tools/dev-deploy/docker-compose.yml +++ b/tools/dev-deploy/docker-compose.yml @@ -125,7 +125,11 @@ services: target: ${GALAXY_DEV_GAME_STATE_DIR} bind: create_host_path: true - - ../../pkg/geoip/test-data/test-data/GeoIP2-Country-Test.mmdb:/var/lib/galaxy/geoip.mmdb:ro + # The GeoIP database is baked into the backend image (see + # tools/local-dev/backend.Dockerfile); a bind-mount is not used + # here because the source path resolves inside the runner + # workspace volume and the host Docker daemon cannot see it, + # which produced an "is a directory" error in CI. networks: - galaxy-internal healthcheck: diff --git a/tools/local-dev/backend.Dockerfile b/tools/local-dev/backend.Dockerfile index 1cd01c3..01e5898 100644 --- a/tools/local-dev/backend.Dockerfile +++ b/tools/local-dev/backend.Dockerfile @@ -24,6 +24,16 @@ COPY pkg/transcoder/ ./pkg/transcoder/ COPY pkg/util/ ./pkg/util/ COPY backend/ ./backend/ +# Bake the GeoIP test database into the build context so downstream +# stages can copy it into the runtime image. The path is the +# `MaxMind-DB` git submodule under `pkg/geoip/test-data/`; the file is +# the smallest country DB MaxMind publishes and is what every other +# dev-stack uses. Baking it lets dev-deploy skip the bind-mount that +# fails on runner-workspace volumes the host Docker daemon cannot see. +RUN mkdir -p /out/var/lib/galaxy +COPY pkg/geoip/test-data/test-data/GeoIP2-Country-Test.mmdb \ + /out/var/lib/galaxy/geoip.mmdb + RUN <<'EOF' cat > go.work go 1.26.2 @@ -67,5 +77,6 @@ EXPOSE 8080 EXPOSE 8081 COPY --from=builder /out/backend /usr/local/bin/backend +COPY --from=builder /out/var/lib/galaxy/geoip.mmdb /var/lib/galaxy/geoip.mmdb ENTRYPOINT ["/usr/local/bin/backend"]