From f8dd8a94c7bf204c7009f1fe33c11b86f19545d5 Mon Sep 17 00:00:00 2001 From: mm644706215 Date: Fri, 17 Jan 2025 00:12:41 +0800 Subject: [PATCH] old version (no orca) --- docker/Dockerfile | 80 +++++++++++++++++++++++++++++++++++++++++ docker/dockerfile.stage | 80 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 docker/Dockerfile create mode 100644 docker/dockerfile.stage diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..3eef335 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,80 @@ +# 第一阶段:构建阶段 +FROM ubuntu:22.04 AS builder + +# 设置环境变量 +ENV DEBIAN_FRONTEND=noninteractive + +# 更新系统、安装依赖并清理缓存 +RUN apt update && apt upgrade -y && \ + apt install -y \ + build-essential \ + gcc \ + g++ \ + gfortran \ + cmake \ + make \ + wget \ + tar \ + libatlas-base-dev \ + liblapacke-dev \ + libblas-dev \ + git \ + libedit-dev \ + zlib1g-dev \ + openbabel \ + libeigen3-dev \ + automake \ + autoconf \ + libtool \ + vim \ + gnuplot \ + pymol \ + && ln -s /usr/bin/obabel /usr/bin/babel \ + && apt clean \ + && rm -rf /var/lib/apt/lists/* + +# 克隆 Open3DQSAR 仓库 +RUN git clone https://github.com/UnixJunkie/Open3DQSAR + +# 进入 Open3DQSAR 目录并构建 +WORKDIR /Open3DQSAR/open3dqsar +RUN ./bootstrap && \ + ./configure --with-atlas && \ + make -j$(nproc) && \ + make install + +# 第二阶段:运行阶段 +FROM ubuntu:22.04 + +# 设置环境变量 +ENV DEBIAN_FRONTEND=noninteractive \ + O3_BABEL_PATH=/usr/bin \ + O3_GNUPLOT=/usr/bin/gnuplot \ + O3_PYMOL=/usr/bin/pymol \ + O3_TEMP_PATH=/tmp \ + O3_QM_ENGINE=/usr/local/bin/orca \ + O3_MD_GRID_PATH=/usr/bin/mdgrid \ + O3_CS3D=/usr/bin/cs3d + +# 安装运行时依赖 +RUN apt update && apt install -y \ + libatlas-base-dev \ + liblapacke-dev \ + libblas-dev \ + openbabel \ + gnuplot \ + pymol \ + && ln -s /usr/bin/obabel /usr/bin/babel \ + && apt clean \ + && rm -rf /var/lib/apt/lists/* + +# 从构建阶段复制构建结果 +COPY --from=builder /usr/local/bin /usr/local/bin +COPY --from=builder /Open3DQSAR /Open3DQSAR + +# 进入测试目录并运行测试脚本 +WORKDIR /Open3DQSAR/open3dqsar/test +RUN ./test.sh > test.log 2>&1 & + +# 设置容器启动时的默认命令(保持容器运行) +ENTRYPOINT ["tail", "-f", "/dev/null"] \ No newline at end of file diff --git a/docker/dockerfile.stage b/docker/dockerfile.stage new file mode 100644 index 0000000..3eef335 --- /dev/null +++ b/docker/dockerfile.stage @@ -0,0 +1,80 @@ +# 第一阶段:构建阶段 +FROM ubuntu:22.04 AS builder + +# 设置环境变量 +ENV DEBIAN_FRONTEND=noninteractive + +# 更新系统、安装依赖并清理缓存 +RUN apt update && apt upgrade -y && \ + apt install -y \ + build-essential \ + gcc \ + g++ \ + gfortran \ + cmake \ + make \ + wget \ + tar \ + libatlas-base-dev \ + liblapacke-dev \ + libblas-dev \ + git \ + libedit-dev \ + zlib1g-dev \ + openbabel \ + libeigen3-dev \ + automake \ + autoconf \ + libtool \ + vim \ + gnuplot \ + pymol \ + && ln -s /usr/bin/obabel /usr/bin/babel \ + && apt clean \ + && rm -rf /var/lib/apt/lists/* + +# 克隆 Open3DQSAR 仓库 +RUN git clone https://github.com/UnixJunkie/Open3DQSAR + +# 进入 Open3DQSAR 目录并构建 +WORKDIR /Open3DQSAR/open3dqsar +RUN ./bootstrap && \ + ./configure --with-atlas && \ + make -j$(nproc) && \ + make install + +# 第二阶段:运行阶段 +FROM ubuntu:22.04 + +# 设置环境变量 +ENV DEBIAN_FRONTEND=noninteractive \ + O3_BABEL_PATH=/usr/bin \ + O3_GNUPLOT=/usr/bin/gnuplot \ + O3_PYMOL=/usr/bin/pymol \ + O3_TEMP_PATH=/tmp \ + O3_QM_ENGINE=/usr/local/bin/orca \ + O3_MD_GRID_PATH=/usr/bin/mdgrid \ + O3_CS3D=/usr/bin/cs3d + +# 安装运行时依赖 +RUN apt update && apt install -y \ + libatlas-base-dev \ + liblapacke-dev \ + libblas-dev \ + openbabel \ + gnuplot \ + pymol \ + && ln -s /usr/bin/obabel /usr/bin/babel \ + && apt clean \ + && rm -rf /var/lib/apt/lists/* + +# 从构建阶段复制构建结果 +COPY --from=builder /usr/local/bin /usr/local/bin +COPY --from=builder /Open3DQSAR /Open3DQSAR + +# 进入测试目录并运行测试脚本 +WORKDIR /Open3DQSAR/open3dqsar/test +RUN ./test.sh > test.log 2>&1 & + +# 设置容器启动时的默认命令(保持容器运行) +ENTRYPOINT ["tail", "-f", "/dev/null"] \ No newline at end of file