-
Notifications
You must be signed in to change notification settings - Fork 26
/
Dockerfile.centos
122 lines (106 loc) · 3.49 KB
/
Dockerfile.centos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# CentOS-based Docker build
###########################
## Notes ##
# SCL is needed for devtoolset, so we can have a more advanced GCC than v4.8.5.
# GCC 4.8.5 was unable to compile:
# - GoogleTest
# - Some C99 for-loop convention used in routines.c
# Note that because SCL's devtoolset is used:
# - LD_LIBRARY_PATH is set to only include devtoolset paths; if you install APBS in e.g. /usr/local,
# then you'll need to add /usr/local/lib64 and /usr/local/lib to LD_LIBRARY_PATH *after* the current contents:
# > export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64:/usr/local/lib
# Note that this build is rather sensitive to the Python3 version
# In particular, the include directory and library are explicitly specified and version dependent.
###########################
# Install base OS
###########################
FROM centos:7 AS apbs_base_centos
RUN yum -y install \
epel-release \
centos-release-scl && \
yum-config-manager --enable rhel-server-rhscl-7-rpms && \
yum -y install devtoolset-11 && \
source scl_source enable devtoolset-11 && \
yum -y install \
unzip \
cmake3 \
git \
arpack-devel \
arpack-static \
f2c \
eigen3-devel \
boost-devel \
python3-pip \
python3-devel \
openblas-serial64 \
openblas-static \
openblas-devel \
lapack64-devel \
lapack64-static \
suitesparse-devel \
suitesparse-static \
&& \
ln -s /usr/bin/cmake3 /usr/local/bin/cmake
###########################
# Install METIS
###########################
FROM apbs_base_centos
RUN echo "${HOME}"
RUN source scl_source enable devtoolset-11 && \
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_centos
ADD . /tmp_source
ARG BLA_VENDOR="OpenBLAS"
ARG BUILD_DOC=ON
ARG APBS_STATIC_BUILD=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.6"
ARG PYTHON3_INCLUDE_DIR="/usr/include/python3.6m"
ARG PYTHON3_LIBRARY="/usr/lib64/libpython3.6m.so"
ARG MAKEJOBS="-j"
RUN source scl_source enable devtoolset-11 && \
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}" \
-DPython3_INCLUDE_DIR=${PYTHON3_INCLUDE_DIR} \
-DPython3_LIBRARY=${PYTHON3_LIBRARY} \
.. && \
make ${MAKEJOBS} install