xref: /aosp_15_r20/external/pytorch/.ci/docker/manywheel/Dockerfile_cxx11-abi (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
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