# ================================
# 1️⃣ Builder Stage
# ================================
FROM golang:1.25.3-alpine AS builder

WORKDIR /app

# Install git jika pakai private module
RUN apk add --no-cache git

# Cache dependency
COPY go.mod go.sum ./
RUN go mod download

# Copy source
COPY . .

# Build dari cmd/api
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
    go build -ldflags="-s -w" \
    -o app ./cmd/api

# ================================
# 2️⃣ Final Stage (Distroless)
# ================================
FROM gcr.io/distroless/base-debian12

WORKDIR /app

COPY --from=builder /app/app .

# Run as non-root (distroless default user)
USER nonroot:nonroot

EXPOSE 8080

ENTRYPOINT ["/app/app"]