| FROM golang:1.26.10 as cos-gpu-installer-go-builder | |
| COPY . /work/ | |
| WORKDIR /work/src/cmd/cos_gpu_installer | |
| ARG TARGETOS | |
| ARG TARGETARCH | |
| RUN GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o cos-gpu-installer main.go | |
| # Dockerfile for the COS GPU Installer container. | |
| FROM marketplace.gcr.io/google/debian12 | |
| LABEL maintainer="cos-containers@google.com" | |
| COPY --from=cos-gpu-installer-go-builder /work/src/cmd/cos_gpu_installer/cos-gpu-installer /cos-gpu-installer | |
| # Install minimal tools needed to build kernel modules. | |
| RUN apt-get update -qq && \ | |
| apt-get install -y ca-certificates xz-utils kmod git make bc curl ccache gpg \ | |
| libc6-dev pciutils gcc libelf-dev libssl-dev bison flex keyutils python3-minimal zlib1g-dev && \ | |
| rm -rf /var/lib/apt/lists/* | |
| RUN curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg \ | |
| --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && \ | |
| curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \ | |
| | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \ | |
| | tee /etc/apt/sources.list.d/nvidia-container-toolkit.list && apt-get update \ | |
| && apt-get install -y nvidia-container-toolkit nvidia-container-toolkit-base | |
| ENTRYPOINT ["/cos-gpu-installer"] | |
| CMD ["install"] |