only 3dqsar build

This commit is contained in:
mm644706215
2025-01-17 15:28:15 +08:00
parent 6382cb20f1
commit 648a52c931
2 changed files with 104 additions and 0 deletions

View File

@@ -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" # 可根据需要暴露其他服务端口

80
docker/Dockerfile.3dqsar Normal file
View File

@@ -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"]