-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathfedora
118 lines (111 loc) · 3.6 KB
/
fedora
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
ARG TAG=latest
FROM registry.fedoraproject.org/fedora:${TAG}
ARG PYTHON=python3.12
ARG INTEL
ARG MPI=openmpi
RUN ( dnf -y update || dnf -y update ) \
&& dnf -y install \
${MPI}-devel \
atlas \
autoconf \
automake \
boost-${MPI}-devel \
boost-devel \
boost-python3-devel \
ccache \
clang \
cmake \
compiler-rt \
doxygen \
environment-modules \
fftw-${MPI}-devel \
fftw-devel \
findutils \
gcc-c++ \
ghostscript \
git \
graphviz \
gromacs \
gromacs-devel \
gsl-devel \
hdf5-${MPI}-devel \
hpx-${MPI}-devel \
hwloc-devel \
latexmk \
liblzf \
libtool \
llvm \
lmfit-devel \
make \
ocl-icd-devel \
python-devel \
python-h5py-${MPI} \
python-matplotlib \
python-nose \
python-numpy \
python-pip \
python-six \
python-sphinx \
python3-coverage \
python3-mpi4py-${MPI} \
Random123-devel \
sudo \
texlive-amsfonts \
texlive-amsmath \
texlive-babel \
texlive-babel-english \
texlive-capt-of \
texlive-cm \
texlive-cmap \
texlive-courier \
texlive-dvips \
texlive-ec \
texlive-fancyhdr \
texlive-fancyvrb \
texlive-fncychap \
texlive-fncychap \
texlive-framed \
texlive-gsftopk \
texlive-helvetic \
texlive-hyphen-base \
texlive-latex-bin \
texlive-makeindex \
texlive-needspace \
texlive-oberdiek \
texlive-parskip \
texlive-psnfss \
texlive-tabulary \
texlive-tex-gyre \
texlive-times \
texlive-titlesec \
texlive-ucs \
texlive-upquote \
texlive-varwidth \
texlive-wrapfig \
wget \
&& dnf clean all
RUN if [ "${INTEL}" = "yes" ]; then \
printf "[oneAPI]\nname=Intel oneAPI\nbaseurl=https://yum.repos.intel.com/oneapi\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB" > /etc/yum.repos.d/intel-oneapi.repo && \
( dnf -y update || dnf -y update ) && \
dnf -y install intel-oneapi-compiler-dpcpp-cpp intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-mkl-devel && \
dnf clean all; \
fi
RUN pip3 install pyh5md
RUN useradd -m -G wheel -u 1001 espressopp
RUN echo '%wheel ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER espressopp
ENV PATH=/usr/lib64/ccache:${PATH}${PATH:+:}/usr/lib64/${MPI}/bin/
ENV LD_LIBRARY_PATH=/usr/lib64/${MPI}/lib${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}
ENV PATH=${INTEL:+/opt/intel/oneapi/compiler/latest/linux/bin:/opt/intel/oneapi/compiler/latest/linux/bin/intel64}${PATH:+:}${PATH}
ENV LD_LIBRARY_PATH=${INTEL:+/opt/intel/oneapi/compiler/latest/linux/compiler/lib/intel64:/opt/intel/oneapi/mkl/latest/lib/intel64}${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}
ENV PYTHONPATH=/usr/lib64/${PYTHON}/site-packages/${MPI}${PYTHONPATH:+:}${PYTHONPATH}
WORKDIR /home/espressopp
# workaround network detection interface in OpenMPI
ENV OMPI_MCA_btl=vader,self
ENV OMPI_MCA_mtl=^ofi
RUN git clone --recursive https://github.com/scafacos/scafacos.git && \
cd scafacos && \
{ ./bootstrap || true; } && \
./configure --prefix=/usr --disable-fcs-fortran --enable-fcs-solvers=direct,ewald,p3m,wolf --enable-shared --disable-static --with-fftw3-includedir=/usr/include/${MPI}-x86_64/ --with-fftw3-libdir=/usr/lib64/${MPI}/lib && \
make && \
sudo make install