# syntax=docker/dockerfile:1
# Containerized CGO build for rejig. Run on podman farm; each node
# produces native Linux (and optionally Windows) artifacts for its
# architecture.
FROM golang AS builder

RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    mingw-w64 \
    zip \
    xz-utils \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /src

ARG BRANCH=""
ARG COMMIT=""
ARG COMMIT_TIME=""
ARG PRIOR=""
ARG VERSION=""
ARG OUTPUT_DIR=/artifacts

ENV VERSION=${VERSION}
ENV BRANCH=${BRANCH}
ENV COMMIT=${COMMIT}
ENV COMMIT_TIME=${COMMIT_TIME}
ENV PRIOR=${PRIOR}
ENV OUTPUT_DIR=${OUTPUT_DIR}

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

COPY . .
RUN ./tools/container-build

# Final stage: distroless Debian 13 (Trixie) with glibc only
FROM gcr.io/distroless/base-debian13
COPY --from=builder /artifacts/bin/ /
ENTRYPOINT ["/rejig"]
