From 8ff4aaa7c755e9d926736ebeafddbbd255f4788f Mon Sep 17 00:00:00 2001 From: Justus Kuhlmann Date: Wed, 28 May 2025 11:40:05 +0200 Subject: [PATCH] add Dockerfile with target of older Hadrons version --- Dockerfile | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cb9afa2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,66 @@ +FROM fedora:42 + +RUN dnf install -y gcc wget perl git autoconf automake libtool m4 gettext bzip2-libs libtool bzip2 xz mpfr-devel gmp-devel libmpc-devel zlib-devel glibc-devel.i686 glibc-devel isl-devel g++ gcc-gnat gcc-gdc libgphobos-static +RUN dnf install -y gmp mpfr fftw awk +RUN dnf install -y dnf-plugins-core +RUN dnf install -y openmpi openmpi-devel +RUN dnf install -y hdf5 hdf5-devel hdf5-static +RUN dnf group install -y development-tools +RUN dnf install -y mpfr-devel gmp-devel libmpc-devel zlib-devel glibc-devel.i686 glibc-devel isl-devel g++ gcc-gnat gcc-gdc libgphobos-static + +ARG user=researcher +ARG group=researcher +ARG uid=1000 +ARG gid=1000 +RUN groupadd -g ${gid} ${group} +RUN useradd -u ${uid} -g ${group} -m ${user} + +# Switch to user +USER ${uid}:${gid} +SHELL ["/bin/bash", "-c"] +ARG prefix=/home/${user}/libs +WORKDIR ${prefix} + +WORKDIR ${prefix} +# Install LIME +RUN wget http://usqcd-software.github.io/downloads/c-lime/lime-1.3.2.tar.gz +RUN tar xvzf lime-1.3.2.tar.gz +WORKDIR ${prefix}/lime-1.3.2 +RUN ./configure --prefix ${prefix} +RUN make all install + +WORKDIR ${prefix} +RUN wget https://www.openssl.org/source/openssl-1.1.0l.tar.gz +RUN tar xvzf openssl-1.1.0l.tar.gz +WORKDIR ${prefix}/openssl-1.1.0l +RUN ./config --prefix=${prefix} +RUN make all install + +ENV PATH=/usr/lib64/openmpi/bin:$PATH +ENV LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH + +WORKDIR /home/${user} +RUN git clone https://github.com/paboyle/Grid.git +WORKDIR /home/${user}/Grid +RUN git checkout 5a4f9bf2e35787e39e4f87c37d8acd0c56fa49c9 + +RUN ./bootstrap.sh + +RUN mkdir build +WORKDIR /home/${user}/Grid/build +RUN ../configure --enable-comms=mpi-auto --enable-simd=AVX2 --enable-shm=shmopen --prefix=${prefix} CXX=g++ MPICXX=mpicc LDFLAGS=-L${prefix}/lib/ CXXFLAGS="-I${prefix}/include/ -std=c++17 -fpermissive" +RUN make -j 4 +RUN make install + +WORKDIR /home/${user} +RUN git clone https://github.com/aportelli/Hadrons.git +WORKDIR /home/${user}/Hadrons +RUN git checkout 9f5ed3e818d6293f84c950e135015062309dbaa8 +RUN ./bootstrap.sh +RUN mkdir build +WORKDIR /home/${user}/Hadrons/build +RUN ../configure --with-grid=${prefix} --prefix=${prefix} +RUN make -j4 +RUN make install + +