This commit is contained in:
root
2024-10-16 23:16:49 +08:00
parent 777d8a0067
commit a331f22baa

View File

@@ -1,4 +1,4 @@
# syntax=docker/dockerfile:1
# syntax=docker/dockerfile:1.3-labs
# NOTE: Building this image require's docker version >= 23.0.
#
# For reference:
@@ -52,8 +52,29 @@ chmod 600 /root/.ssh/authorized_keys2
mkdir /var/run/sshd
echo "root:${ROOT_PASSWD}" | chpasswd
mkdir -p ~/.pip
# timezone
apt-get install -y tzdata
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai" > /etc/timezone
# install pixi
curl -fsSL https://pixi.sh/install.sh | bash
# curl -fsSL https://pixi.sh/install.sh | bash
EOT
ENV PATH=/opt/modules/bin:$PATH
ENV LIBRARY_PATH=/opt/modules/lib:$LIBRARY_PATH
COPY ./file/modules-5.4.0.tar.gz /root
## install modules to manage environment variables download from https://modules.sourceforge.net/
# usage: https://nscc.mrzhenggang.com/user-manual/config-env-with-module
RUN <<EOT
#!/bin/bash
# apt-get update && apt-get install -y tcl
tar zxvf modules-5.4.0.tar.gz
cd modules-5.4.0
# ./configure --prefix=/opt/modules --bindir=/opt/modules/bin --libdir=/opt/modules/lib --with-tclsh=/usr/bin/tclsh
./configure --prefix=/opt/modules --bindir=/opt/modules/bin --libdir=/opt/modules/lib --disable-libtclenvmodules
make -j$(nproc)
make install
/opt/modules/bin/modulecmd --version
EOT
ARG FFTW_VERSION="3.3.10"
@@ -125,7 +146,7 @@ nvcc -o test_mpi_cuda test_mpi_cuda.cu -I${CUDA_HOME}/include -I${MPI_HOME}/incl
EOT
# 安装plumed
ARG PLUMED_VERSION="2.9.1"
ARG PLUMED_VERSION="2.9.2"
ENV PLUMED_VERSION=${PLUMED_VERSION}
ENV LD_LIBRARY_PATH=/usr/local/plumed/lib:$LD_LIBRARY_PATH
ENV PATH=/usr/local/plumed:/usr/local/plumed/bin:$PATH
@@ -143,10 +164,12 @@ make install
EOT
# 安装gromacs
ARG GROMACS_VERSION="2022.5"
ARG GROMACS_VERSION="2021.7"
ENV GROMACS_VERSION=${GROMACS_VERSION}
ENV GROMACS_HOME=/usr/local/gromacs-${GROMACS_VERSION}-plumed-${PLUMED_VERSION}
ENV PATH=PATH=$GROMACS_HOME/bin:$PATH
ARG CUDA_ARCH="75;86;89"
ENV CUDA_ARCH=${CUDA_ARCH}
RUN <<EOT
#!/bin/bash
wget -c https://ftp.gromacs.org/gromacs/gromacs-${GROMACS_VERSION}.tar.gz
@@ -161,25 +184,56 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs-${GROMACS_VERSION}-plumed-${P
-DGMX_BUILD_OWN_FFTW=ON \
-DREGRESSIONTEST_DOWNLOAD=ON \
-DGMX_GPU=CUDA \
-DGMX_CUDA_TARGET_COMPUTE="75;86;89" \
-DGMX_CUDA_TARGET_SM="75;86;89" \
-DGMX_MPI=ON
make -j$(nproc)
make install
echo "source /usr/local/gromacs-${GROMACS_VERSION}-plumed-${PLUMED_VERSION}/bin/GMXRC.bash" >> /root/.bashrc
EOT
COPY file/Amber24.tar.bz2 file/AmberTools24.tar.bz2 /root
# PyAutoFEP install support version: GROMACS 2021.7
# GROMACS 2022.5 和 2023 中遇到的“排除原子距离超过截断距离”的问题,确保模拟的稳定性和自由能计算的收敛性。
# https://github.com/luancarvalhomartins/PyAutoFEP/blob/master/docs/Manual.pdf
# https://github.com/luancarvalhomartins/PyAutoFEP/tree/master/docs/tutorial01
ENV CPLUS_INCLUDE_PATH=/usr/include/openbabel3
ENV LIBRARY_PATH=/usr/lib:/usr/local/lib:${LIBRARY_PATH}
RUN <<EOT
#!/bin/bash
sudo apt-get update
sudo apt-get install openbabel libopenbabel-dev -y
sudo apt-get install swig -y
sudo ln -s /usr/include/openbabel3 /usr/local/include/openbabel3
/usr/bin/python3 -m pip install ipython rdkit "networkx>2.0,<3.0" alchemlyb==0.6.0 pymbar==3.0.5 openbabel>3.0.0 matplotlib numpy biopython mdanalysis pytest packaging
# or openbabel use 2.4.1
git clone https://github.com/luancarvalhomartins/PyAutoFEP.git
EOT
COPY file/Amber24.tar.bz2 file/AmberTools24.tar.bz2 /root
COPY file/l_HPCKit_p_2024.2.1.79_offline.sh file/l_onemkl_p_2024.2.2.17_offline.sh /root
COPY boost_1_86_0.tar.gz /root
ENV DOWNLOAD_MINICONDA="False"
# install ambertools
RUN <<EOT
#!/bin/bash
python3 -m pip install numpy scipy matplotlib
chmod +x l_HPCKit_p_2024.2.1.79_offline.sh
./l_HPCKit_p_2024.2.1.79_offline.sh -a --silent --eula accept --install-dir /opt/intel
chmod +x l_onemkl_p_2024.2.2.17_offline.sh
./l_onemkl_p_2024.2.2.17_offline.sh -a --silent --eula accept --install-dir /opt/intel/onemkl
# install Boost from https://www.boost.org/users/download/
tar zxvf boost_1_86_0.tar.gz
cd boost_1_86_0
./bootstrap.sh --prefix=/opt/boost --with-libraries=all --with-toolset=gcc
echo "using mpi : /usr/local/openmpi/bin/mpicxx ;" >> project-config.jam
# echo "using mpi : /opt/intel/mpi/2021.13/bin/mpicxx ;" >> project-config.jam
./b2 -j$(nproc) --layout=tagged link=static,shared threading=multi install
# 解压 Amber24
tar -xjf Amber24.tar.bz2
# 解压 AmberTools24
tar -xjf AmberTools24.tar.bz2
# 清理解压后的 .tar.bz2 文件(可选)
rm Amber24.tar.bz2 AmberTools24.tar.bz2
# rm Amber24.tar.bz2 AmberTools24.tar.bz2
EOT
RUN <<EOT