# Build stage FROM golang:1.24-alpine AS builder # Install build dependencies RUN apk add --no-cache git WORKDIR /build # Copy go mod files COPY go.mod go.sum ./ RUN go mod download # Copy the entire monorepo COPY . . # Build the API service WORKDIR /build/services/api RUN CGO_ENABLED=0 GOOS=linux go build -o api ./cmd/server # Runtime stage FROM alpine:latest RUN apk add --no-cache ca-certificates WORKDIR /app # Copy the binary from builder COPY --from=builder /build/services/api/api . # Copy migrations COPY --from=builder /build/internal/migrations ./internal/migrations EXPOSE 8080 # Run the API ENTRYPOINT ["./api"]