FROM golang:1.26-alpine AS build WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY cmd/ ./cmd/ COPY pkg/ ./pkg/ RUN go test -count=1 ./... ARG GIT_SHA=unknown RUN CGO_ENABLED=0 go build -trimpath \ -ldflags="-s -w -X main.gitSHA=${GIT_SHA}" \ -o /out/flock ./cmd/flock \ && CGO_ENABLED=0 go build -trimpath \ -ldflags="-s -w -X main.gitSHA=${GIT_SHA}" \ -o /out/flock-agent ./cmd/flock-agent \ && CGO_ENABLED=0 go build -trimpath \ -ldflags="-s -w -X main.gitSHA=${GIT_SHA}" \ -o /out/flock-installer ./cmd/flock-installer FROM alpine:3.21 RUN apk add --no-cache iproute2 bird ca-certificates COPY --from=build /out/flock /usr/local/bin/flock COPY --from=build /out/flock-agent /usr/local/bin/flock-agent COPY --from=build /out/flock-installer /usr/local/bin/flock-installer ENTRYPOINT ["/usr/local/bin/flock-agent"]