|
| 1 | +ARG BASE_VERSION=7 |
| 2 | + |
| 3 | + |
| 4 | +FROM centos:${BASE_VERSION} |
| 5 | +SHELL ["/bin/bash", "-c"] |
| 6 | + |
| 7 | +# SOURCE |
| 8 | +RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo \ |
| 9 | + && sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo \ |
| 10 | + && sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo |
| 11 | +RUN yum install -y centos-release-scl \ |
| 12 | + && sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo \ |
| 13 | + && sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo \ |
| 14 | + && sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo \ |
| 15 | + && yum update -y |
| 16 | +RUN yum install -y epel-release --enablerepo=extras \ |
| 17 | + && yum install -y https://packages.endpointdev.com/rhel/7/os/$(uname -m)/endpoint-repo.$(uname -m).rpm \ |
| 18 | + && yum update -y |
| 19 | + |
| 20 | +# MAKE & CCACHE & CURL & GIT |
| 21 | +RUN yum install -y make ccache curl git \ |
| 22 | + && make --version \ |
| 23 | + && ccache --version \ |
| 24 | + && curl --version \ |
| 25 | + && git --version |
| 26 | + |
| 27 | +# CMAKE |
| 28 | +ENV CMAKE_VERSION=3.22.1 |
| 29 | +RUN curl -sL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" | tar -zx -C /usr --strip-components 1 \ |
| 30 | + && cmake --version |
| 31 | + |
| 32 | +# GCC |
| 33 | +ENV PKG_CONFIG_PATH="/opt/rh/devtoolset-9/root/usr/lib/pkgconfig:/opt/rh/devtoolset-9/root/usr/lib64/pkgconfig:$PKG_CONFIG_PATH" \ |
| 34 | + LD_LIBRARY_PATH="/opt/rh/devtoolset-9/root/usr/lib:/opt/rh/devtoolset-9/root/usr/lib/dyninst:/opt/rh/devtoolset-9/root/usr/lib64:/opt/rh/devtoolset-9/root/usr/lib64/dyninst:$LD_LIBRARY_PATH" |
| 35 | +RUN yum install -y devtoolset-9 devtoolset-9-libatomic-devel devtoolset-9-elfutils-libelf-devel \ |
| 36 | + && ln -vsf /opt/rh/devtoolset-9/root/bin/* /usr/bin/ \ |
| 37 | + && echo "/opt/rh/devtoolset-9/root/usr/lib" >> /etc/ld.so.conf \ |
| 38 | + && echo "/opt/rh/devtoolset-9/root/usr/lib64" >> /etc/ld.so.conf \ |
| 39 | + && ldconfig -v \ |
| 40 | + && gcc --version |
| 41 | +RUN yum install -y glibc-static libstdc++-static |
| 42 | + |
| 43 | +# OPENSSL |
| 44 | +ENV OPENSSL_VESION=3.4.0 \ |
| 45 | + PKG_CONFIG_PATH="/usr/local/openssl/lib/pkgconfig:/usr/local/openssl/lib64/pkgconfig:$PKG_CONFIG_PATH" \ |
| 46 | + LD_LIBRARY_PATH="/usr/local/openssl/lib:/usr/local/openssl/lib64:$LD_LIBRARY_PATH" |
| 47 | +RUN yum install -y zlib-devel perl perl-IPC-Cmd perl-Test-Simple perl-CPAN \ |
| 48 | + && curl -sL "https://github.com/openssl/openssl/releases/download/openssl-${OPENSSL_VESION}/openssl-${OPENSSL_VESION}.tar.gz" | tar -zx -C /tmp \ |
| 49 | + && loc=$(pwd) && cd /tmp/openssl-${OPENSSL_VESION} \ |
| 50 | + && ./config --prefix=/usr/local/openssl --openssldir=/etc/ssl shared zlib enable-ssl3 enable-ssl3-method enable-mdc2 enable-md2 \ |
| 51 | + && make -j $(nproc) build_sw && make -j $(nproc) install_sw \ |
| 52 | + && cd ${local} && rm -rf /tmp/openssl-${OPENSSL_VESION} \ |
| 53 | + && ln -vsf /usr/local/openssl/bin/* /usr/bin/ \ |
| 54 | + && ln -vsf /usr/local/openssl/include/openssl /usr/include/openssl \ |
| 55 | + && echo "/usr/local/openssl/lib" >> /etc/ld.so.conf \ |
| 56 | + && echo "/usr/local/openssl/lib64" >> /etc/ld.so.conf \ |
| 57 | + && ldconfig -v \ |
| 58 | + && openssl --version |
| 59 | + |
| 60 | +# OPENBLAS |
| 61 | +RUN yum install -y openblas-static |
| 62 | +COPY <<EOF /usr/lib64/pkgconfig/openblas.pc |
| 63 | +Name: OpenBLAS |
| 64 | +Description: OpenBLAS library |
| 65 | +Version: 0.3.3 |
| 66 | +Libs: -L/usr/lib64 -lopenblas |
| 67 | +Cflags: -I/usr/include/openblas |
| 68 | +EOF |
| 69 | + |
| 70 | +# OPENMP |
| 71 | +RUN yum install -y libgomp openmpi openmpi-devel |
0 commit comments