# ============================================================================
# kamado-api build stage
# ============================================================================
FROM golang:1.22-bookworm AS build

WORKDIR /src
# Cache deps first
COPY go.mod ./
RUN go mod download 2>/dev/null || true
COPY . .

# Static build — CGO off, stripped, reproducible-ish
RUN CGO_ENABLED=0 GOOS=linux go build \
        -trimpath \
        -ldflags="-s -w" \
        -o /out/kamado-api \
        ./cmd/kamado-api

# ============================================================================
# Runtime: distroless-ish minimal
# ============================================================================
FROM debian:bookworm-slim AS runtime

RUN apt-get update && apt-get install --no-install-recommends -y \
        ca-certificates \
        tini \
    && rm -rf /var/lib/apt/lists/* \
    && mkdir -p /var/lib/kamado /var/log/ckpool /run/ckpool

COPY --from=build /out/kamado-api /usr/local/bin/kamado-api

EXPOSE 8080

ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/kamado-api"]
