FROM --platform=$BUILDPLATFORM golang:1.25 AS builder WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY cmd ./cmd COPY pkg ./pkg ARG TARGETOS ARG TARGETARCH ENV CGO_ENABLED=0 # Build the binary for the requested OS/arch RUN GOOS=$TARGETOS GOARCH=$TARGETARCH \ go build -trimpath -ldflags="-s -w" -o /out/cfdns ./cmd # Minimal runtime FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /app COPY --from=builder /out/cfdns /app/cfdns # Default command ENTRYPOINT ["/app/cfdns"] CMD ["-config", "/app/config/cfdns.yaml"]