FROM nvidia/cuda:12.1.0-cudnn8-devel-ubuntu20.04 ARG DEBIAN_FRONTEND="noninteractive" ENV DEBIAN_FRONTEND=${DEBIAN_FRONTEND} ENV MAMBA_ROOT_PREFIX=~/micromamba ARG CONDA_ENV_NAME="ldh" ENV CONDA_ENV_NAME=${CONDA_ENV_NAME} ARG PYTHON_VERSION=3.10 ENV PYTHON_VERSION=${PYTHON_VERSION} ARG ROOT_PASSWD="root" ENV ROOT_PASSWD=${ROOT_PASSWD} ENV PATH /opt/conda/bin:/opt/conda/envs/${CONDA_ENV_NAME}/bin:$PATH WORKDIR /root SHELL ["/bin/bash", "-c"] # base tools RUN <> ~/.bashrc echo "conda activate ${CONDA_ENV_NAME}" >> ~/.bashrc # 配置 .condarc 文件 cat < ~/.condarc channels: - conda-forge - bioconda - pytorch - pytorch-nightly - nvidia - defaults show_channel_urls: true EOF # 安装 micromamba echo 1 | bash <(curl -s https://cdn.jsdelivr.net/gh/hotwa/MicroMamba_Installer@main/install.sh) micromamba shell init -s bash -p ~/micromamba cat <<'EOF' >> ~/.bashrc source ~/micromamba/etc/profile.d/micromamba.sh alias mamba=micromamba alias mba=mamba EOF # 配置 .mambarc 文件 cat < ~/.mambarc channels: - conda-forge - bioconda - pytorch - pytorch-nightly - nvidia - defaults show_channel_urls: true EOF EOT # 安装 ninja 并测试 RUN <> /etc/ssh/sshd_config # cp /etc/ssh/sshd_config ${STAGE_DIR}/sshd_config # sed "0,/^#Port 22/s//Port 22/" ${STAGE_DIR}/sshd_config > /etc/ssh/sshd_config # EOT # # Mellanox OFED # WORKDIR ${STAGE_DIR} # ENV MLNX_OFED_VERSION=4.9-7.1.0.0 # RUN wget -q -O - http://www.mellanox.com/downloads/ofed/MLNX_OFED-${MLNX_OFED_VERSION}/MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu20.04-x86_64.tgz | tar xzf - && \ # cd MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu20.04-x86_64 && \ # ./mlnxofedinstall --user-space-only --without-fw-update --all -q && \ # cd ${STAGE_DIR} && \ # rm -rf ${STAGE_DIR}/MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-ubuntu20.04-x86_64* # # nv_peer_mem # ENV NV_PEER_MEM_VERSION=1.2 # ENV NV_PEER_MEM_TAG=${NV_PEER_MEM_VERSION}-0 # RUN mkdir -p ${STAGE_DIR} && \ # git clone https://github.com/Mellanox/nv_peer_memory.git --branch ${NV_PEER_MEM_TAG} ${STAGE_DIR}/nv_peer_memory && \ # cd ${STAGE_DIR}/nv_peer_memory && \ # ./build_module.sh && \ # cd ${STAGE_DIR} && \ # tar xzf ${STAGE_DIR}/nvidia-peer-memory_${NV_PEER_MEM_VERSION}.orig.tar.gz && \ # cd ${STAGE_DIR}/nvidia-peer-memory-${NV_PEER_MEM_VERSION} && \ # apt-get update && \ # apt-get install -y dkms && \ # dpkg-buildpackage -us -uc && \ # dpkg -i ${STAGE_DIR}/nvidia-peer-memory_${NV_PEER_MEM_TAG}_all.deb # # OPENMPI # ENV OPENMPI_BASEVERSION=4.1 # ENV OPENMPI_VERSION=${OPENMPI_BASEVERSION}.6 # RUN < /usr/local/mpi/bin/mpirun && \ # echo 'mpirun.real --allow-run-as-root --prefix /usr/local/mpi "$@"' >> /usr/local/mpi/bin/mpirun && \ # chmod a+x /usr/local/mpi/bin/mpirun # # Some Packages # RUN <