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 openssl-devel RUN dnf install -y node 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 ENV PATH=/usr/lib64/openmpi/bin:$PATH ENV LD_LIBRARY_PATH=/usr/lib64/openmpi/lib 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