FROM golang:1.26-alpine AS build
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/ares-server ./cmd/ares-server
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/ares-metadata-backup ./cmd/ares-metadata-backup
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/ares-ops-agent ./cmd/ares-ops-agent
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/ares-retention-service ./cmd/ares-retention-service

FROM gcr.io/distroless/static-debian12:nonroot
COPY --from=build /out/ares-server /usr/local/bin/ares-server
COPY --from=build /out/ares-metadata-backup /usr/local/bin/ares-metadata-backup
COPY --from=build /out/ares-ops-agent /usr/local/bin/ares-ops-agent
COPY --from=build /out/ares-retention-service /usr/local/bin/ares-retention-service
USER nonroot:nonroot
ENTRYPOINT ["/usr/local/bin/ares-server"]
