ARG BUILDER_IMAGE
FROM ${BUILDER_IMAGE} as builder

# Install tools
RUN --mount=type=cache,target=/go/pkg/mod/ \
    go install github.com/vektra/mockery/v2@v2.42.0 && \
    go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.16.3 && \
    go install golang.org/x/tools/cmd/goimports@v0.25.0 && \
    go install github.com/golang/protobuf/protoc-gen-go@v1.4.3

RUN apt-get update && apt-get install unzip

RUN curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v25.3/protoc-25.3-linux-x86_64.zip && \
    unzip protoc-25.3-linux-x86_64.zip -d /usr/local && \
    rm protoc-25.3-linux-x86_64.zip && \
    chmod a+x /usr/local/bin/protoc && \
    find /usr/local -type d | xargs chmod 755 && \
    find /usr/local -type f | xargs chmod a+r


# Expect to be working with nfd
WORKDIR /go/node-feature-discovery

# We need to set the /go/node-feature-discovery directory as a safe directory.
# This allows git commands to run in the container on MacOS systems.
RUN git config --file=/.gitconfig --add safe.directory /go/node-feature-discovery