# 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"]
