From 648a52c931e740e8339a15efe781f7ae8be2c3a5 Mon Sep 17 00:00:00 2001 From: mm644706215 Date: Fri, 17 Jan 2025 15:28:15 +0800 Subject: [PATCH] only 3dqsar build --- docker-compose_open3dqsar.yml | 24 +++++++++++ docker/Dockerfile.3dqsar | 80 +++++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 docker-compose_open3dqsar.yml create mode 100644 docker/Dockerfile.3dqsar diff --git a/docker-compose_open3dqsar.yml b/docker-compose_open3dqsar.yml new file mode 100644 index 0000000..dbc4929 --- /dev/null +++ b/docker-compose_open3dqsar.yml @@ -0,0 +1,24 @@ +version: '3.9' + +services: + open3dqsar: + build: + context: docker # Dockerfile所在目录 + dockerfile: Dockerfile.3dqsar # Dockerfile文件名 + image: hotwa/open3dqsar:latest # 镜像名称和标签 + container_name: open3dqsar_container + stdin_open: true # 保持标准输入打开 + tty: true # 启用伪终端 + command: tail -f /dev/null # 启动时保持容器运行 + environment: + O3_BABEL_PATH: "/usr/bin" + O3_GNUPLOT: "/usr/bin/gnuplot" + O3_PYMOL: "/usr/bin/pymol" + O3_TEMP: "/tmp" + O3_QM_ENGINE: "/path/to/orca" # 如果将来使用 ORCA,可在此处设置路径 + O3_CS3D: "/path/to/cs3d" # 如果需要 CS3D 功能,可在此处设置路径 + O3_MD_GRID_PATH: "/path/to/mdgrid" # 如果需要 MD GRID,可在此处设置路径 + volumes: + - ./data:/Open3DQSAR/data # 将本地目录映射到容器中,便于保存数据 + ports: + - "8080:8080" # 可根据需要暴露其他服务端口 \ No newline at end of file diff --git a/docker/Dockerfile.3dqsar b/docker/Dockerfile.3dqsar new file mode 100644 index 0000000..3eef335 --- /dev/null +++ b/docker/Dockerfile.3dqsar @@ -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