ai-code-battle/cmd/acb-map-evolver/Dockerfile
jedarden 181e846d8a feat(map-evolver): bootstrap empty maps table and containerize
- Add seedIfEmpty: idempotent startup seeding (20 maps per player count,
  ON CONFLICT DO NOTHING) using cellular-automata generation + validate()
- Add continuous evolution loop across all player counts (2/3/4/6)
- ACB_MIN_SEED_COUNT and ACB_EVOLUTION_PERIOD configurable via env vars
- Add Dockerfile (lean Alpine build, no language runtimes)
- Add acb-map-evolver to acb-build.yml CI pipeline
- Add staging K8s Deployment manifest

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-02 08:05:51 -04:00

29 lines
743 B
Docker

FROM golang:1.25-alpine AS builder
WORKDIR /build
RUN apk --no-cache add git
COPY go.mod go.sum ./
RUN go mod download
COPY engine/ ./engine/
COPY cmd/acb-map-evolver/ ./cmd/acb-map-evolver/
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /acb-map-evolver ./cmd/acb-map-evolver
FROM alpine:3.21
RUN apk --no-cache add ca-certificates tzdata
RUN addgroup -g 1000 acb && adduser -D -u 1000 -G acb acb
COPY --from=builder /acb-map-evolver /app/acb-map-evolver
USER acb
# ACB_DATABASE_URL - PostgreSQL connection string (required)
# ACB_MIN_SEED_COUNT - Maps to seed per player count on startup [default: 20]
# ACB_EVOLUTION_PERIOD - Sleep between evolution cycles [default: 30m]
ENTRYPOINT ["/app/acb-map-evolver"]