diff --git a/.hadolint.yaml b/.hadolint.yaml index 44fab0b27a..a024f89710 100644 --- a/.hadolint.yaml +++ b/.hadolint.yaml @@ -2,3 +2,5 @@ ignored: - DL3003 - DL3007 - DL3008 +# disable following sourced files + - SC1091 \ No newline at end of file diff --git a/ci/docker/centos-7-core.dockerfile b/ci/docker/centos-7-core.dockerfile index c70d21d13e..6b97217b26 100644 --- a/ci/docker/centos-7-core.dockerfile +++ b/ci/docker/centos-7-core.dockerfile @@ -7,17 +7,25 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN yum install -y epel-release centos-release-scl-rh && yum install -y wget curl which && \ wget -qO- "https://cmake.org/files/v3.14/cmake-3.14.3-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local && \ - yum install -y ccache make automake git python3-pip libcurl-devel python3-devel boost-static mysql-devel \ + yum install -y make automake git python3-pip libcurl-devel python3-devel boost-static mysql-devel \ devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gcc-gfortran llvm-toolset-7.0-clang llvm-toolset-7.0-clang-tools-extra \ - mysql lcov openblas-devel lapack-devel \ - && \ - rm -rf /var/cache/yum/* - -RUN echo "source scl_source enable devtoolset-7" >> /etc/profile.d/devtoolset-7.sh -RUN echo "source scl_source enable llvm-toolset-7.0" >> /etc/profile.d/llvm-toolset-7.sh + mysql lcov && \ + rm -rf /var/cache/yum/* && \ + echo "source scl_source enable devtoolset-7" >> /etc/profile.d/devtoolset-7.sh && \ + echo "source scl_source enable llvm-toolset-7.0" >> /etc/profile.d/llvm-toolset-7.sh ENV CLANG_TOOLS_PATH="/opt/rh/llvm-toolset-7.0/root/usr/bin" +RUN source /etc/profile.d/devtoolset-7.sh && \ + wget https://github.com/xianyi/OpenBLAS/archive/v0.3.9.tar.gz && \ + tar zxvf v0.3.9.tar.gz && cd OpenBLAS-0.3.9 && \ + make TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="-O3 -g -fPIC" FCOMMON_OPT="-O3 -g -fPIC -frecursive" NMAX="NUM_THREADS=128" LIBPREFIX="libopenblas" LAPACKE="NO_LAPACKE=1" INTERFACE64=0 NO_STATIC=1 && \ + make PREFIX=/usr install && \ + cd .. && rm -rf OpenBLAS-0.3.9 && rm v0.3.9.tar.gz + +RUN yum install -y ccache && \ + rm -rf /var/cache/yum/* + # use login shell to activate environment un the RUN commands SHELL [ "/bin/bash", "-c", "-l" ] diff --git a/ci/docker/ubuntu-18.04-core.dockerfile b/ci/docker/ubuntu-18.04-core.dockerfile index 57891b8b92..a034674675 100644 --- a/ci/docker/ubuntu-18.04-core.dockerfile +++ b/ci/docker/ubuntu-18.04-core.dockerfile @@ -13,11 +13,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certifi sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list' && \ wget -qO- "https://cmake.org/files/v3.14/cmake-3.14.3-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local && \ apt-get update && apt-get install -y --no-install-recommends \ - g++ git gfortran lsb-core ccache \ + g++ git gfortran lsb-core \ libboost-serialization-dev libboost-filesystem-dev libboost-system-dev libboost-regex-dev \ curl libtool automake libssl-dev pkg-config libcurl4-openssl-dev python3-pip \ clang-format-6.0 clang-tidy-6.0 \ - lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 libopenblas-dev liblapack3 && \ + lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* @@ -26,6 +26,16 @@ RUN ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so \ RUN sh -c 'echo export LD_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2019.5.281/linux/mkl/lib/intel64:\$LD_LIBRARY_PATH > /etc/profile.d/mkl.sh' +RUN wget https://github.com/xianyi/OpenBLAS/archive/v0.3.9.tar.gz && \ + tar zxvf v0.3.9.tar.gz && cd OpenBLAS-0.3.9 && \ + make TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="-O3 -g -fPIC" FCOMMON_OPT="-O3 -g -fPIC -frecursive" NMAX="NUM_THREADS=128" LIBPREFIX="libopenblas" LAPACKE="NO_LAPACKE=1" INTERFACE64=0 NO_STATIC=1 && \ + make PREFIX=/usr install && \ + cd .. && rm -rf OpenBLAS-0.3.9 && rm v0.3.9.tar.gz + +RUN apt-get update && apt-get install -y --no-install-recommends ccache && \ + apt-get remove --purge -y && \ + rm -rf /var/lib/apt/lists/* + # use login shell to activate environment un the RUN commands SHELL [ "/bin/bash", "-c", "-l" ] diff --git a/docker/build_env/cpu/centos7/Dockerfile b/docker/build_env/cpu/centos7/Dockerfile index 153946af51..92542ffcf5 100644 --- a/docker/build_env/cpu/centos7/Dockerfile +++ b/docker/build_env/cpu/centos7/Dockerfile @@ -15,17 +15,25 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN yum install -y epel-release centos-release-scl-rh && yum install -y wget curl which && \ wget -qO- "https://cmake.org/files/v3.14/cmake-3.14.3-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local && \ - yum install -y ccache make automake git python3-pip libcurl-devel python3-devel boost-static mysql-devel \ + yum install -y make automake git python3-pip libcurl-devel python3-devel boost-static mysql-devel \ devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gcc-gfortran llvm-toolset-7.0-clang llvm-toolset-7.0-clang-tools-extra \ - mysql lcov openblas-devel lapack-devel \ - && \ - rm -rf /var/cache/yum/* - -RUN echo "source scl_source enable devtoolset-7" >> /etc/profile.d/devtoolset-7.sh -RUN echo "source scl_source enable llvm-toolset-7.0" >> /etc/profile.d/llvm-toolset-7.sh + mysql lcov && \ + rm -rf /var/cache/yum/* && \ + echo "source scl_source enable devtoolset-7" >> /etc/profile.d/devtoolset-7.sh && \ + echo "source scl_source enable llvm-toolset-7.0" >> /etc/profile.d/llvm-toolset-7.sh ENV CLANG_TOOLS_PATH="/opt/rh/llvm-toolset-7.0/root/usr/bin" +RUN source /etc/profile.d/devtoolset-7.sh && \ + wget https://github.com/xianyi/OpenBLAS/archive/v0.3.9.tar.gz && \ + tar zxvf v0.3.9.tar.gz && cd OpenBLAS-0.3.9 && \ + make TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="-O3 -g -fPIC" FCOMMON_OPT="-O3 -g -fPIC -frecursive" NMAX="NUM_THREADS=128" LIBPREFIX="libopenblas" LAPACKE="NO_LAPACKE=1" INTERFACE64=0 NO_STATIC=1 && \ + make PREFIX=/usr install && \ + cd .. && rm -rf OpenBLAS-0.3.9 && rm v0.3.9.tar.gz + +RUN yum install -y ccache && \ + rm -rf /var/cache/yum/* + COPY docker-entrypoint.sh /app/docker-entrypoint.sh WORKDIR /root diff --git a/docker/build_env/cpu/ubuntu16.04/Dockerfile b/docker/build_env/cpu/ubuntu16.04/Dockerfile index be428c2bf7..5da66be6cb 100644 --- a/docker/build_env/cpu/ubuntu16.04/Dockerfile +++ b/docker/build_env/cpu/ubuntu16.04/Dockerfile @@ -21,11 +21,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certifi sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list' && \ wget -qO- "https://cmake.org/files/v3.14/cmake-3.14.3-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local && \ apt-get update && apt-get install -y --no-install-recommends \ - g++ git gfortran lsb-core ccache \ + g++ git gfortran lsb-core \ libboost-serialization-dev libboost-filesystem-dev libboost-system-dev libboost-regex-dev \ curl libtool automake libssl-dev pkg-config libcurl4-openssl-dev python3-pip \ clang-format-6.0 clang-tidy-6.0 \ - lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 libopenblas-dev liblapack3 && \ + lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* @@ -34,6 +34,16 @@ RUN ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so \ RUN sh -c 'echo export LD_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2019.5.281/linux/mkl/lib/intel64:\$LD_LIBRARY_PATH > /etc/profile.d/mkl.sh' +RUN wget https://github.com/xianyi/OpenBLAS/archive/v0.3.9.tar.gz && \ + tar zxvf v0.3.9.tar.gz && cd OpenBLAS-0.3.9 && \ + make TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="-O3 -g -fPIC" FCOMMON_OPT="-O3 -g -fPIC -frecursive" NMAX="NUM_THREADS=128" LIBPREFIX="libopenblas" LAPACKE="NO_LAPACKE=1" INTERFACE64=0 NO_STATIC=1 && \ + make PREFIX=/usr install && \ + cd .. && rm -rf OpenBLAS-0.3.9 && rm v0.3.9.tar.gz + +RUN apt-get update && apt-get install -y --no-install-recommends ccache && \ + apt-get remove --purge -y && \ + rm -rf /var/lib/apt/lists/* + COPY docker-entrypoint.sh /app/docker-entrypoint.sh WORKDIR /root diff --git a/docker/build_env/cpu/ubuntu18.04/Dockerfile b/docker/build_env/cpu/ubuntu18.04/Dockerfile index 79ddbe4367..81ac022bd8 100644 --- a/docker/build_env/cpu/ubuntu18.04/Dockerfile +++ b/docker/build_env/cpu/ubuntu18.04/Dockerfile @@ -21,11 +21,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certifi sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list' && \ wget -qO- "https://cmake.org/files/v3.14/cmake-3.14.3-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local && \ apt-get update && apt-get install -y --no-install-recommends \ - g++ git gfortran lsb-core ccache \ + g++ git gfortran lsb-core \ libboost-serialization-dev libboost-filesystem-dev libboost-system-dev libboost-regex-dev \ curl libtool automake libssl-dev pkg-config libcurl4-openssl-dev python3-pip \ clang-format-6.0 clang-tidy-6.0 \ - lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 libopenblas-dev liblapack3 && \ + lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* @@ -34,6 +34,16 @@ RUN ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so \ RUN sh -c 'echo export LD_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2019.5.281/linux/mkl/lib/intel64:\$LD_LIBRARY_PATH > /etc/profile.d/mkl.sh' +RUN wget https://github.com/xianyi/OpenBLAS/archive/v0.3.9.tar.gz && \ + tar zxvf v0.3.9.tar.gz && cd OpenBLAS-0.3.9 && \ + make TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="-O3 -g -fPIC" FCOMMON_OPT="-O3 -g -fPIC -frecursive" NMAX="NUM_THREADS=128" LIBPREFIX="libopenblas" LAPACKE="NO_LAPACKE=1" INTERFACE64=0 NO_STATIC=1 && \ + make PREFIX=/usr install && \ + cd .. && rm -rf OpenBLAS-0.3.9 && rm v0.3.9.tar.gz + +RUN apt-get update && apt-get install -y --no-install-recommends ccache && \ + apt-get remove --purge -y && \ + rm -rf /var/lib/apt/lists/* + COPY docker-entrypoint.sh /app/docker-entrypoint.sh WORKDIR /root diff --git a/docker/build_env/gpu/centos7/Dockerfile b/docker/build_env/gpu/centos7/Dockerfile index ae7bdd83dc..ebccc6750a 100644 --- a/docker/build_env/gpu/centos7/Dockerfile +++ b/docker/build_env/gpu/centos7/Dockerfile @@ -17,17 +17,25 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN yum install -y epel-release centos-release-scl-rh && yum install -y wget curl which && \ wget -qO- "https://cmake.org/files/v3.14/cmake-3.14.3-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local && \ - yum install -y ccache make automake git python3-pip libcurl-devel python3-devel boost-static mysql-devel \ + yum install -y make automake git python3-pip libcurl-devel python3-devel boost-static mysql-devel \ devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gcc-gfortran llvm-toolset-7.0-clang llvm-toolset-7.0-clang-tools-extra \ - mysql lcov openblas-devel lapack-devel \ - && \ - rm -rf /var/cache/yum/* - -RUN echo "source scl_source enable devtoolset-7" >> /etc/profile.d/devtoolset-7.sh -RUN echo "source scl_source enable llvm-toolset-7.0" >> /etc/profile.d/llvm-toolset-7.sh + mysql lcov && \ + rm -rf /var/cache/yum/* && \ + echo "source scl_source enable devtoolset-7" >> /etc/profile.d/devtoolset-7.sh && \ + echo "source scl_source enable llvm-toolset-7.0" >> /etc/profile.d/llvm-toolset-7.sh ENV CLANG_TOOLS_PATH="/opt/rh/llvm-toolset-7.0/root/usr/bin" +RUN source /etc/profile.d/devtoolset-7.sh && \ + wget https://github.com/xianyi/OpenBLAS/archive/v0.3.9.tar.gz && \ + tar zxvf v0.3.9.tar.gz && cd OpenBLAS-0.3.9 && \ + make TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="-O3 -g -fPIC" FCOMMON_OPT="-O3 -g -fPIC -frecursive" NMAX="NUM_THREADS=128" LIBPREFIX="libopenblas" LAPACKE="NO_LAPACKE=1" INTERFACE64=0 NO_STATIC=1 && \ + make PREFIX=/usr install && \ + cd .. && rm -rf OpenBLAS-0.3.9 && rm v0.3.9.tar.gz + +RUN yum install -y ccache && \ + rm -rf /var/cache/yum/* + COPY docker-entrypoint.sh /app/docker-entrypoint.sh WORKDIR /root diff --git a/docker/build_env/gpu/ubuntu16.04/Dockerfile b/docker/build_env/gpu/ubuntu16.04/Dockerfile index ea229e3f82..2233c4b1fc 100644 --- a/docker/build_env/gpu/ubuntu16.04/Dockerfile +++ b/docker/build_env/gpu/ubuntu16.04/Dockerfile @@ -21,10 +21,10 @@ RUN apt-get update && apt-get install -y --no-install-recommends wget && \ apt-key add /tmp/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB && \ sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list' && \ apt-get update && apt-get install -y --no-install-recommends \ - git flex bison gfortran lsb-core ccache \ + git flex bison gfortran lsb-core \ curl libtool automake libboost1.58-all-dev libssl-dev pkg-config libcurl4-openssl-dev python3-pip \ clang-format-6.0 clang-tidy-6.0 \ - lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 libopenblas-dev liblapack3 && \ + lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* @@ -32,6 +32,16 @@ RUN ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so /usr/lib/x86_64-linux-gnu/ RUN sh -c 'echo export LD_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2019.5.281/linux/mkl/lib/intel64:\$LD_LIBRARY_PATH > /etc/profile.d/mkl.sh' +RUN wget https://github.com/xianyi/OpenBLAS/archive/v0.3.9.tar.gz && \ + tar zxvf v0.3.9.tar.gz && cd OpenBLAS-0.3.9 && \ + make TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="-O3 -g -fPIC" FCOMMON_OPT="-O3 -g -fPIC -frecursive" NMAX="NUM_THREADS=128" LIBPREFIX="libopenblas" LAPACKE="NO_LAPACKE=1" INTERFACE64=0 NO_STATIC=1 && \ + make PREFIX=/usr install && \ + cd .. && rm -rf OpenBLAS-0.3.9 && rm v0.3.9.tar.gz + +RUN apt-get update && apt-get install -y --no-install-recommends ccache && \ + apt-get remove --purge -y && \ + rm -rf /var/lib/apt/lists/* + COPY docker-entrypoint.sh /app/docker-entrypoint.sh WORKDIR /root diff --git a/docker/build_env/gpu/ubuntu18.04/Dockerfile b/docker/build_env/gpu/ubuntu18.04/Dockerfile index 0cbaecde7f..847a97f2ee 100644 --- a/docker/build_env/gpu/ubuntu18.04/Dockerfile +++ b/docker/build_env/gpu/ubuntu18.04/Dockerfile @@ -21,10 +21,10 @@ RUN apt-get update && apt-get install -y --no-install-recommends wget && \ apt-key add /tmp/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB && \ sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list' && \ apt-get update && apt-get install -y --no-install-recommends \ - git flex bison gfortran lsb-core ccache \ + git flex bison gfortran lsb-core \ curl libtool automake libboost-all-dev libssl-dev pkg-config libcurl4-openssl-dev python3-pip \ clang-format-6.0 clang-tidy-6.0 \ - lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 libopenblas-dev liblapack3 && \ + lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* @@ -32,6 +32,16 @@ RUN ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so /usr/lib/x86_64-linux-gnu/ RUN sh -c 'echo export LD_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2019.5.281/linux/mkl/lib/intel64:\$LD_LIBRARY_PATH > /etc/profile.d/mkl.sh' +RUN wget https://github.com/xianyi/OpenBLAS/archive/v0.3.9.tar.gz && \ + tar zxvf v0.3.9.tar.gz && cd OpenBLAS-0.3.9 && \ + make TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="-O3 -g -fPIC" FCOMMON_OPT="-O3 -g -fPIC -frecursive" NMAX="NUM_THREADS=128" LIBPREFIX="libopenblas" LAPACKE="NO_LAPACKE=1" INTERFACE64=0 NO_STATIC=1 && \ + make PREFIX=/usr install && \ + cd .. && rm -rf OpenBLAS-0.3.9 && rm v0.3.9.tar.gz + +RUN apt-get update && apt-get install -y --no-install-recommends ccache && \ + apt-get remove --purge -y && \ + rm -rf /var/lib/apt/lists/* + COPY docker-entrypoint.sh /app/docker-entrypoint.sh WORKDIR /root