mirror of
https://github.com/Electrostatics/apbs.git
synced 2026-06-04 12:44:23 +08:00
100 lines
2.6 KiB
Docker
100 lines
2.6 KiB
Docker
# Ubuntu-based Docker build
|
|
###########################
|
|
|
|
## Notes ##
|
|
|
|
# Attempting to do a static build of APBS has previously failed in this Docker image.
|
|
# Errors were seen while linking `apbs` having to do with position-independent code.
|
|
# This is possibly due to the flags used to build the static Python library.
|
|
# Therefore this file defaults to using a shared build (i.e. `APBS_STATIC_BUILD=OFF`).
|
|
|
|
###########################
|
|
# Install base OS
|
|
###########################
|
|
|
|
FROM ubuntu:22.04 AS apbs_base_ubuntu
|
|
|
|
RUN apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
software-properties-common \
|
|
build-essential \
|
|
dpkg-dev \
|
|
unzip \
|
|
cmake \
|
|
git \
|
|
libarpack2-dev \
|
|
libf2c2-dev \
|
|
libeigen3-dev \
|
|
libboost-dev \
|
|
python3-all \
|
|
python3-all-dev \
|
|
python3-pip \
|
|
libopenblas-serial-dev \
|
|
liblapack-dev \
|
|
libsuitesparse-dev \
|
|
libsuperlu-dev
|
|
|
|
###########################
|
|
# Install METIS
|
|
###########################
|
|
|
|
FROM apbs_base_ubuntu
|
|
|
|
RUN git clone https://github.com/Electrostatics/metis-fork.git metis-5.1.0 && \
|
|
cd metis-5.1.0 && \
|
|
make config prefix=/usr/local && \
|
|
make install
|
|
|
|
###########################
|
|
# Install APBS
|
|
###########################
|
|
|
|
FROM apbs_base_ubuntu
|
|
|
|
ADD . /tmp_source
|
|
|
|
ARG APBS_STATIC_BUILD=OFF
|
|
ARG BLA_VENDOR="OpenBLAS"
|
|
ARG BUILD_DOC=ON
|
|
ARG BUILD_TOOLS=ON
|
|
ARG INSTALL_DIR=/usr/local
|
|
ARG RELEASE_TYPE=Debug
|
|
ARG ENABLE_PYGBE=ON
|
|
ARG ENABLE_BEM=ON
|
|
ARG ENABLE_GEOFLOW=ON
|
|
#ARG FETK_VERSION="1.9.1"
|
|
ARG FETK_VERSION=57195e55351e04ce6ee0ef56a143c996a9aee7e2
|
|
ARG ENABLE_iAPBS=ON
|
|
ARG ENABLE_OPENMP=OFF
|
|
ARG ENABLE_PBAM=OFF
|
|
ARG ENABLE_PBSAM=OFF
|
|
ARG ENABLE_PYTHON=OFF
|
|
ARG ENABLE_TESTS=ON
|
|
ARG GET_NanoShaper=ON
|
|
ARG PYTHON_VERSION="3.10"
|
|
ARG MAKEJOBS="-j"
|
|
|
|
RUN cd /tmp_source && \
|
|
mkdir build && cd build && \
|
|
cmake \
|
|
-DCMAKE_INSTALL_INCLUDEDIR="include" \
|
|
-DBUILD_DOC=${BUILD_DOC} \
|
|
-DAPBS_STATIC_BUILD=${APBS_STATIC_BUILD} \
|
|
-DBUILD_TOOLS=O${BUILD_TOOLS} \
|
|
-DCMAKE_BUILD_TYPE=$RELEASE_TYPE \
|
|
-DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \
|
|
-DENABLE_PYGBE=${ENABLE_PYGBE} \
|
|
-DENABLE_BEM=${ENABLE_BEM} \
|
|
-DENABLE_iAPBS=${ENABLE_iAPBS} \
|
|
-DENABLE_GEOFLOW=${ENABLE_GEOFLOW} \
|
|
-DENABLE_OPENMP=${ENABLE_OPENMP} \
|
|
-DENABLE_PBAM=${ENABLE_PBAM} \
|
|
-DENABLE_PBSAM=${ENABLE_PBSAM} \
|
|
-DENABLE_PYTHON=${ENABLE_PYTHON} \
|
|
-DENABLE_TESTS=${ENABLE_TESTS} \
|
|
-DFETK_VERSION=${FETK_VERSION} \
|
|
-DGET_NanoShaper=${GET_NanoShaper} \
|
|
-DPYTHON_VERSION="${PYTHON_VERSION}" \
|
|
.. && \
|
|
make ${MAKEJOBS} install
|
|
|