1FROM centos:8 as base 2 3ENV LC_ALL en_US.UTF-8 4ENV LANG en_US.UTF-8 5ENV LANGUAGE en_US.UTF-8 6ENV PATH /opt/rh/gcc-toolset-11/root/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 7 8# change to a valid repo 9RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*.repo 10# enable to install ninja-build 11RUN sed -i 's|enabled=0|enabled=1|g' /etc/yum.repos.d/CentOS-Linux-PowerTools.repo 12 13RUN yum -y update 14RUN yum install -y wget curl perl util-linux xz bzip2 git patch which zlib-devel sudo 15RUN yum install -y autoconf automake make cmake gdb gcc-toolset-11-gcc-c++ 16 17 18FROM base as openssl 19ADD ./common/install_openssl.sh install_openssl.sh 20RUN bash ./install_openssl.sh && rm install_openssl.sh 21 22# Install python 23FROM base as python 24RUN yum install -y openssl-devel zlib-devel bzip2-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel libffi-devel 25ADD common/install_cpython.sh install_cpython.sh 26RUN bash ./install_cpython.sh && rm install_cpython.sh 27 28FROM base as conda 29ADD ./common/install_conda_docker.sh install_conda.sh 30RUN bash ./install_conda.sh && rm install_conda.sh 31RUN /opt/conda/bin/conda install -y cmake 32 33FROM base as intel 34# Install MKL 35COPY --from=python /opt/python /opt/python 36COPY --from=python /opt/_internal /opt/_internal 37COPY --from=conda /opt/conda /opt/conda 38ENV PATH=/opt/conda/bin:$PATH 39ADD ./common/install_mkl.sh install_mkl.sh 40RUN bash ./install_mkl.sh && rm install_mkl.sh 41 42FROM base as patchelf 43ADD ./common/install_patchelf.sh install_patchelf.sh 44RUN bash ./install_patchelf.sh && rm install_patchelf.sh 45RUN cp $(which patchelf) /patchelf 46 47FROM base as jni 48ADD ./common/install_jni.sh install_jni.sh 49ADD ./java/jni.h jni.h 50RUN bash ./install_jni.sh && rm install_jni.sh 51 52FROM base as libpng 53ADD ./common/install_libpng.sh install_libpng.sh 54RUN bash ./install_libpng.sh && rm install_libpng.sh 55 56FROM base as final 57COPY --from=openssl /opt/openssl /opt/openssl 58COPY --from=python /opt/python /opt/python 59COPY --from=python /opt/_internal /opt/_internal 60COPY --from=intel /opt/intel /opt/intel 61COPY --from=conda /opt/conda /opt/conda 62COPY --from=patchelf /usr/local/bin/patchelf /usr/local/bin/patchelf 63COPY --from=jni /usr/local/include/jni.h /usr/local/include/jni.h 64COPY --from=libpng /usr/local/bin/png* /usr/local/bin/ 65COPY --from=libpng /usr/local/bin/libpng* /usr/local/bin/ 66COPY --from=libpng /usr/local/include/png* /usr/local/include/ 67COPY --from=libpng /usr/local/include/libpng* /usr/local/include/ 68COPY --from=libpng /usr/local/lib/libpng* /usr/local/lib/ 69COPY --from=libpng /usr/local/lib/pkgconfig /usr/local/lib/pkgconfig 70 71RUN yum install -y ninja-build 72