FROM golang:1.25-alpine AS build ARG GARM_COMMIT ARG GARM_PROVIDER_K8S_VERSION=0.3.2 RUN apk add --no-cache ca-certificates git wget tar build-base WORKDIR /src RUN git clone https://github.com/cloudbase/garm.git . && git checkout "${GARM_COMMIT}" RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 \ go build -trimpath -ldflags="-s -w" \ -o /out/garm ./cmd/garm RUN mkdir -p /out/providers.d \ && wget -qO /tmp/garm-provider-k8s.tar.gz "https://github.com/mercedes-benz/garm-provider-k8s/releases/download/v${GARM_PROVIDER_K8S_VERSION}/garm-provider-k8s_Linux_x86_64.tar.gz" \ && tar -xzf /tmp/garm-provider-k8s.tar.gz -C /out/providers.d \ && chmod 0755 /out/providers.d/garm-provider-k8s FROM alpine:3.21 RUN apk add --no-cache ca-certificates tzdata && adduser -D -u 65532 nonroot COPY --from=build /out/garm /bin/garm COPY --from=build /out/providers.d/garm-provider-k8s /opt/garm/providers.d/garm-provider-k8s USER nonroot ENTRYPOINT ["/bin/garm"]