# redapricot Go client image.
#
# Build from the repository root (the Go module lives here):
#   docker build -t redapricot-client .
#
# Run with a mounted config:
#   docker run --rm -v "$PWD/client.json:/etc/redapricot/client.json" \
#     redapricot-client /etc/redapricot/client.json
#
# syntax=docker/dockerfile:1

# ---- build stage ----
FROM golang:1.25 AS build
WORKDIR /src

# Cache module downloads separately from the source.
COPY go.mod go.sum ./
RUN go mod download

# Build a static, stripped binary.
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" \
    -o /out/redapricot-client ./cmd/redapricot-client

# ---- runtime stage ----
FROM gcr.io/distroless/static:nonroot
COPY --from=build /out/redapricot-client /usr/local/bin/redapricot-client
USER nonroot:nonroot
ENTRYPOINT ["/usr/local/bin/redapricot-client"]
# Default config path; override by passing a different path as the container arg.
CMD ["/etc/redapricot/client.json"]
