# ── Stage 1: Builder ──────────────────────────────────────────────
FROM golang:1.22-alpine AS builder

RUN apk add --no-cache ca-certificates git

WORKDIR /build
COPY go.mod go.sum ./
RUN go mod download

COPY . .

ARG VERSION=dev
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
    -ldflags "-s -w -X main.version=${VERSION}" \
    -o taskapi \
    ./cmd/taskapi

# ── Stage 2: Runner ──────────────────────────────────────────────
FROM scratch

COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /build/taskapi   /taskapi
COPY --from=builder /build/migrations /migrations

EXPOSE 8080 9090
USER 1000:1000
ENTRYPOINT ["/taskapi"]
