58 lines
1.6 KiB
Docker
58 lines
1.6 KiB
Docker
FROM debian:12
|
|
|
|
ARG GO_VERSION=1.24.0
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update -qq && apt-get install -y \
|
|
ca-certificates \
|
|
live-build \
|
|
debootstrap \
|
|
squashfs-tools \
|
|
xorriso \
|
|
grub-pc-bin \
|
|
grub-efi-amd64-bin \
|
|
mtools \
|
|
git \
|
|
wget \
|
|
curl \
|
|
tar \
|
|
xz-utils \
|
|
rsync \
|
|
build-essential \
|
|
gcc \
|
|
make \
|
|
perl \
|
|
linux-headers-amd64 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Add NVIDIA CUDA repo and install nvcc (needed to compile nccl-tests)
|
|
RUN wget -qO /tmp/cuda-keyring.gpg \
|
|
https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/3bf863cc.pub \
|
|
&& gpg --dearmor < /tmp/cuda-keyring.gpg \
|
|
> /usr/share/keyrings/nvidia-cuda.gpg \
|
|
&& rm /tmp/cuda-keyring.gpg \
|
|
&& echo "deb [signed-by=/usr/share/keyrings/nvidia-cuda.gpg] \
|
|
https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/ /" \
|
|
> /etc/apt/sources.list.d/cuda.list \
|
|
&& apt-get update -qq \
|
|
&& apt-get install -y cuda-nvcc-12-8 \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& ln -sfn /usr/local/cuda-12.8 /usr/local/cuda
|
|
|
|
RUN arch="$(dpkg --print-architecture)" \
|
|
&& case "$arch" in \
|
|
amd64) goarch=amd64 ;; \
|
|
arm64) goarch=arm64 ;; \
|
|
*) echo "unsupported architecture: $arch" >&2; exit 1 ;; \
|
|
esac \
|
|
&& wget -q -O /tmp/go.tar.gz "https://go.dev/dl/go${GO_VERSION}.linux-${goarch}.tar.gz" \
|
|
&& rm -rf /usr/local/go \
|
|
&& tar -C /usr/local -xzf /tmp/go.tar.gz \
|
|
&& rm -f /tmp/go.tar.gz
|
|
|
|
ENV PATH=/usr/local/go/bin:${PATH}
|
|
WORKDIR /work
|
|
|
|
CMD ["/bin/bash"]
|