1- FROM ubuntu:18.04 as base
2-
3- ENV DEBIAN_FRONTEND=noninteractive
4-
5- RUN apt-get clean && apt-get update
6- RUN apt-get install -y curl locales git-all autoconf automake make cmake wget unzip vim gcc g++
7-
8- RUN locale-gen en_US.UTF-8
1+ FROM centos:8 as base
92
103ENV LC_ALL en_US.UTF-8
114ENV LANG en_US.UTF-8
125ENV LANGUAGE en_US.UTF-8
136
14- # Install openssl
7+ # change to a valid repo
8+ RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*.repo
9+ # enable to install ninja-build
10+ RUN sed -i 's|enabled=0|enabled=1|g' /etc/yum.repos.d/CentOS-Linux-PowerTools.repo
11+
12+ RUN yum -y update
13+ RUN yum install -y wget curl perl util-linux xz bzip2 git patch which zlib-devel
14+ RUN yum install -y autoconf automake make cmake gdb gcc gcc-c++
15+
16+
1517FROM base as openssl
1618ADD ./common/install_openssl.sh install_openssl.sh
1719RUN bash ./install_openssl.sh && rm install_openssl.sh
1820
1921# Install python
2022FROM base as python
23+ RUN 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
2124ADD common/install_cpython.sh install_cpython.sh
22- RUN apt-get update -y && \
23- apt-get install build-essential gdb lcov libbz2-dev libffi-dev \
24- libgdbm-dev liblzma-dev libncurses5-dev libreadline6-dev \
25- libsqlite3-dev libssl-dev lzma lzma-dev tk-dev uuid-dev zlib1g-dev -y && \
26- bash ./install_cpython.sh && \
27- rm install_cpython.sh && \
28- apt-get clean
25+ RUN bash ./install_cpython.sh && rm install_cpython.sh
2926
3027FROM base as intel
3128# Install MKL
@@ -35,20 +32,37 @@ RUN bash ./install_mkl.sh && rm install_mkl.sh
3532FROM base as conda
3633ADD ./common/install_conda.sh install_conda.sh
3734RUN bash ./install_conda.sh && rm install_conda.sh
38- RUN /opt/conda/bin/conda install -y cmake=3.14
35+ RUN /opt/conda/bin/conda install -y cmake
3936
40- FROM base as final
41- # Install LLVM
42- COPY --from=pytorch/llvm:9.0.1 /opt/llvm /opt/llvm
43- COPY --from=pytorch/llvm:9.0.1 /opt/llvm_no_cxx11_abi /opt/llvm_no_cxx11_abi
44- COPY --from=openssl /opt/openssl /opt/openssl
45- # Install patchelf
37+ FROM base as patchelf
4638ADD ./common/install_patchelf.sh install_patchelf.sh
4739RUN bash ./install_patchelf.sh && rm install_patchelf.sh
48- COPY --from=intel /opt/intel /opt/intel
49- # Install Anaconda
50- COPY --from=conda /opt/conda /opt/conda
51- # Install python
52- COPY --from=python /opt/python /opt/python
53- COPY --from=python /opt/_internal /opt/_internal
54- ENV PATH /opt/conda/bin:$PATH
40+ RUN cp $(which patchelf) /patchelf
41+
42+ FROM base as jni
43+ ADD ./common/install_jni.sh install_jni.sh
44+ ADD ./java/jni.h jni.h
45+ RUN bash ./install_jni.sh && rm install_jni.sh
46+
47+ FROM base as libpng
48+ ADD ./common/install_libpng.sh install_libpng.sh
49+ RUN bash ./install_libpng.sh && rm install_libpng.sh
50+
51+ FROM base as final
52+ COPY --from=pytorch/llvm:9.0.1 /opt/llvm /opt/llvm
53+ COPY --from=pytorch/llvm:9.0.1 /opt/llvm_no_cxx11_abi /opt/llvm_no_cxx11_abi
54+ COPY --from=openssl /opt/openssl /opt/openssl
55+ COPY --from=python /opt/python /opt/python
56+ COPY --from=python /opt/_internal /opt/_internal
57+ COPY --from=intel /opt/intel /opt/intel
58+ COPY --from=conda /opt/conda /opt/conda
59+ COPY --from=patchelf /usr/local/bin/patchelf /usr/local/bin/patchelf
60+ COPY --from=jni /usr/local/include/jni.h /usr/local/include/jni.h
61+ COPY --from=libpng /usr/local/bin/png* /usr/local/bin/
62+ COPY --from=libpng /usr/local/bin/libpng* /usr/local/bin/
63+ COPY --from=libpng /usr/local/include/png* /usr/local/include/
64+ COPY --from=libpng /usr/local/include/libpng* /usr/local/include/
65+ COPY --from=libpng /usr/local/lib/libpng* /usr/local/lib/
66+ COPY --from=libpng /usr/local/lib/pkgconfig /usr/local/lib/pkgconfig
67+
68+ RUN yum install -y ninja-build
0 commit comments