|
| 1 | +FROM fedora:38 |
| 2 | + |
| 3 | +RUN dnf -y update && \ |
| 4 | + dnf -y install vim-enhanced git file make cmake patch which file Lmod \ |
| 5 | + ninja-build clang clang-tools-extra libomp-devel libubsan libasan libtsan \ |
| 6 | + diffutils dos2unix findutils rsync python-devel libjpeg-devel libpng-devel \ |
| 7 | + ccache gcc-c++ gcc-gfortran gdb valgrind eigen3-devel openblas-devel \ |
| 8 | + openmpi-devel mpich-devel fftw-devel voro++-devel gsl-devel hdf5-devel \ |
| 9 | + netcdf-devel netcdf-cxx-devel netcdf-mpich-devel netcdf-openmpi-devel \ |
| 10 | + readline-devel python3-pyyaml python3-Cython \ |
| 11 | + mingw-filesystem-base mingw32-nsis mingw-binutils-generic \ |
| 12 | + mingw32-filesystem mingw32-pkg-config \ |
| 13 | + mingw64-filesystem mingw64-pkg-config \ |
| 14 | + mingw32-crt mingw32-headers mingw32-binutils \ |
| 15 | + mingw64-crt mingw64-headers mingw64-binutils \ |
| 16 | + mingw32-cpp mingw32-gcc mingw32-gcc-gfortran mingw32-gcc-c++ \ |
| 17 | + mingw64-cpp mingw64-gcc mingw64-gcc-gfortran mingw64-gcc-c++ \ |
| 18 | + mingw32-libgomp mingw64-libgomp \ |
| 19 | + mingw32-winpthreads mingw64-winpthreads \ |
| 20 | + mingw32-eigen3 mingw64-eigen3 \ |
| 21 | + mingw32-fftw mingw64-fftw \ |
| 22 | + mingw32-libjpeg-turbo mingw64-libjpeg-turbo \ |
| 23 | + mingw32-libpng mingw64-libpng \ |
| 24 | + mingw32-python3 mingw64-python3 \ |
| 25 | + mingw32-python3-numpy mingw64-python3-numpy \ |
| 26 | + mingw32-python3-pyyaml mingw64-python3-pyyaml \ |
| 27 | + mingw32-python3-setuptools mingw64-python3-setuptools \ |
| 28 | + mingw32-readline mingw64-readline \ |
| 29 | + mingw32-termcap mingw64-termcap \ |
| 30 | + mingw32-zlib mingw64-zlib \ |
| 31 | + mingw32-zstd mingw64-zstd \ |
| 32 | + enchant python3-virtualenv doxygen latexmk \ |
| 33 | + texlive-latex-fonts texlive-pslatex texlive-collection-latexrecommended \ |
| 34 | + texlive-latex texlive-latexconfig doxygen-latex texlive-collection-latex \ |
| 35 | + texlive-latex-bin texlive-lualatex-math texlive-fncychap texlive-tabulary \ |
| 36 | + texlive-framed texlive-wrapfig texlive-upquote texlive-capt-of texlive-pict2e \ |
| 37 | + texlive-needspace texlive-titlesec texlive-anysize texlive-dvipng texlive-xindy \ |
| 38 | + blas-devel lapack-devel libyaml-devel openkim-models kim-api-devel \ |
| 39 | + zstd libzstd-devel yaml-cpp-devel && \ |
| 40 | + dnf clean all |
| 41 | + |
| 42 | +# install NSIS EnVar plugin |
| 43 | +RUN curl -L -o EnVar_plugin.zip https://nsis.sourceforge.io/mediawiki/images/7/7f/EnVar_plugin.zip && \ |
| 44 | + unzip -d /usr/share/nsis EnVar_plugin.zip && \ |
| 45 | + rm EnVar_plugin.zip |
| 46 | + |
| 47 | +ENV PLUMED_VERSION=2.8.2 |
| 48 | + |
| 49 | +RUN source /usr/share/lmod/lmod/init/profile && \ |
| 50 | + module purge && \ |
| 51 | + module load mpi && \ |
| 52 | + mkdir plumed && \ |
| 53 | + cd plumed && \ |
| 54 | + curl -L -o plumed.tar.gz https://github.com/plumed/plumed2/releases/download/v${PLUMED_VERSION}/plumed-src-${PLUMED_VERSION}.tgz && \ |
| 55 | + tar -xzf plumed.tar.gz && \ |
| 56 | + cd plumed-${PLUMED_VERSION} && \ |
| 57 | + ./configure --disable-doc --prefix=/usr && \ |
| 58 | + make -j 4 && \ |
| 59 | + make install && \ |
| 60 | + mv -v /usr/lib64/pkgconfig/plumed* /usr/share/pkgconfig/ && \ |
| 61 | + cd ../../ && \ |
| 62 | + rm -rvf plumed |
| 63 | + |
| 64 | +# restrict OpenMPI to shared memory comm by default |
| 65 | +ENV OMPI_MCA_btl="tcp,self" |
| 66 | +# do not warn about unused components as this messes up testing |
| 67 | +ENV OMPI_MCA_btl_base_warn_component_unused="0" |
| 68 | + |
| 69 | +# create missing termcap pkgconfig files |
| 70 | +COPY termcap_i686.pc /usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig/termcap.pc |
| 71 | +COPY termcap_x86_64.pc /usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig/termcap.pc |
| 72 | + |
| 73 | +COPY entrypoint.sh /entrypoint.sh |
| 74 | +ENTRYPOINT ["/entrypoint.sh"] |
| 75 | +CMD ["/bin/bash"] |
0 commit comments