# Build stage FROM golang:1.23-alpine AS builder # Install git for go mod download RUN apk add --no-cache git WORKDIR /app # Copy go workspace files COPY go.work go.work.sum* ./ COPY pkg/go.mod pkg/go.sum* ./pkg/ COPY services/api/go.mod services/api/go.sum* ./services/api/ # Download dependencies RUN cd services/api && go mod download # Copy source COPY pkg/ ./pkg/ COPY services/api/ ./services/api/ # Build RUN cd services/api && CGO_ENABLED=0 go build -o /api ./cmd/server # Production stage FROM alpine:3.19 RUN apk add --no-cache ca-certificates tzdata WORKDIR / COPY --from=builder /api /api EXPOSE 8001 ENTRYPOINT ["/api"]