Files
ollama37/docker/builder/Dockerfile
Shang Chieh Tseng f2c94bb9af Add Docker builder image with CUDA 11.4, GCC 10, CMake 4, and Go 1.25.3
- Build CUDA 11.4 toolkit from NVIDIA repository (for K80 compute 3.7 support)
- Build GCC 10 from source (required for CUDA 11.4 compatibility)
- Build CMake 4.0.0 from source (latest version)
- Install Go 1.25.3 from official tarball
- Configure library paths via /etc/ld.so.conf.d/gcc-10.conf and ldconfig
- Add /etc/profile.d scripts for interactive shell PATH setup
- Use ENV statements for Docker build-time and runtime PATH configuration
- Switch from nvidia/cuda base image to rockylinux:8 for full control
2025-11-08 21:03:38 +08:00

59 lines
2.0 KiB
Docker

FROM rockylinux/rockylinux:8
# Update OS and install cuda toolkit 11.4 and nvdia driver 470
#RUN dnf -y update\
# && dnf -y module install nvidia-driver:470-dkms\
RUN dnf -y install epel-release\
&& dnf -y config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo\
&& dnf -y install cuda-11-4
# Post install, setup path
COPY cuda-11.4.sh /etc/profile.d/cuda-11.4.sh
ENV PATH="$PATH:/usr/local/cuda-11.4/bin"
#ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib64:/usr/local/lib64"
# Install gcc 10
RUN dnf -y install wget unzip bzip2\
&& dnf -y groupinstall "Development Tools"\
&& cd /usr/local/src\
&& wget https://github.com/gcc-mirror/gcc/archive/refs/heads/releases/gcc-10.zip\
&& unzip gcc-10.zip\
&& cd gcc-releases-gcc-10\
&& contrib/download_prerequisites\
&& mkdir /usr/local/gcc-10\
&& cd /usr/local/gcc-10\
&& /usr/local/src/gcc-releases-gcc-10/configure --disable-multilib\
&& make -j $(nproc)\
&& make install
# Post install, setup path
#COPY gcc-10.sh /etc/profile.d/gcc-10.sh
#ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib64:/usr/local/lib64"
COPY gcc-10.conf /etc/ld.so.conf.d/gcc-10.conf
RUN ldconfig\
&& rm -f /usr/bin/cc\
&& ln -s /usr/local/bin/gcc /usr/bin/cc
# Install cmake
#ENV LD_LIBRARY_PATH="/usr/local/nvidia/lib:/usr/local/nvidia/lib64"
#ENV PATH="/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
RUN dnf -y install openssl-devel\
&& cd /usr/local/src\
&& wget https://github.com/Kitware/CMake/releases/download/v4.0.0/cmake-4.0.0.tar.gz\
&& tar xvf cmake-4.0.0.tar.gz\
&& mkdir /usr/local/cmake-4\
&& cd /usr/local/cmake-4\
&& /usr/local/src/cmake-4.0.0/configure\
&& make -j $(nproc)\
&& make install
# Install go
RUN cd /usr/local\
&& wget https://go.dev/dl/go1.25.3.linux-amd64.tar.gz\
&& tar xvf go1.25.3.linux-amd64.tar.gz
# Post install, setup path
COPY go.sh /etc/profile.d/go.sh
ENV PATH="$PATH:/usr/local/go/bin"