mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-21 21:52:11 +00:00
### Description 1. Delete Prefast tasks (#17522) 2. Disable yum update (#17551) 3. Avoid calling patchelf (#17365 and #17562) we that we can validate the above fix The main problem I'm trying to solve is: our GPU package depends on both CUDA 11.x and CUDA 12.x . However, it's not easy to see the information because ldd doesn't work with the shared libraries we generate(see issue #9754) . So the patchelf change are useful for me to validate the "Disabling yum update" was successful. As you can see we call "yum update" from multiple places. Without some kind of validation it's hard to say if I have covered all of them. The Prefast change is needed because I'm going to update the VM images in the next a few weeks. In case of we need to publish a patch release after that. ### Motivation and Context Without this fix we will mix using CUDA 11.x and CUDA 12.x. And it will crash every time when we use TensorRT.
202 lines
7.7 KiB
Text
202 lines
7.7 KiB
Text
ARG BASEIMAGE=centos:7
|
|
ARG POLICY=manylinux2014
|
|
ARG PLATFORM=x86_64
|
|
ARG DEVTOOLSET_ROOTPATH=
|
|
ARG LD_LIBRARY_PATH_ARG=
|
|
ARG PREPEND_PATH=
|
|
|
|
FROM $BASEIMAGE AS base_image
|
|
ARG ROCM_VERSION=5.5
|
|
|
|
# Enable epel-release repositories
|
|
RUN yum --enablerepo=extras install -y epel-release
|
|
|
|
# Install the ROCm rpms
|
|
RUN yum clean all
|
|
RUN echo -e "[ROCm]\nname=ROCm\nbaseurl=https://repo.radeon.com/rocm/yum/$ROCM_VERSION/main\nenabled=1\ngpgcheck=0" >> /etc/yum.repos.d/rocm.repo
|
|
|
|
RUN echo -e "[amdgpu]\nname=amdgpu\nbaseurl=https://repo.radeon.com/amdgpu/$ROCM_VERSION/rhel/7.9/main/x86_64\nenabled=1\ngpgcheck=0" >> /etc/yum.repos.d/amdgpu.repo
|
|
|
|
RUN yum install -y rocm-dev
|
|
|
|
# Set ENV
|
|
ENV PATH=/opt/rocm/hcc/bin:/opt/rocm/hip/bin:/opt/rocm/bin${PATH:+:${PATH}}
|
|
|
|
#Build manylinux2014 docker image begin
|
|
FROM base_image AS runtime_base
|
|
ARG POLICY
|
|
ARG PLATFORM
|
|
ARG DEVTOOLSET_ROOTPATH
|
|
ARG LD_LIBRARY_PATH_ARG
|
|
ARG PREPEND_PATH
|
|
LABEL maintainer="The ManyLinux project"
|
|
|
|
# TODO: This should not be required if the hipify-perl binary is already a part
|
|
# of the base docker image. Remove this line moving forward.
|
|
RUN yum install -y hipify-clang
|
|
|
|
RUN yum -y install wget
|
|
|
|
# rocm lib
|
|
RUN yum install -y miopen-hip-devel rocblas-devel rocrand-devel rccl-devel hipsparse-devel hipfft-devel hipcub-devel hipblas-devel rocthrust-devel
|
|
|
|
ENV AUDITWHEEL_POLICY=${POLICY} AUDITWHEEL_ARCH=${PLATFORM} AUDITWHEEL_PLAT=${POLICY}_${PLATFORM}
|
|
ENV LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8
|
|
ENV DEVTOOLSET_ROOTPATH=${DEVTOOLSET_ROOTPATH}
|
|
ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH_ARG}
|
|
ENV PATH=${PREPEND_PATH}${PATH}
|
|
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
|
|
|
# first copy the fixup mirrors script, keep the script around
|
|
COPY build_scripts/fixup-mirrors.sh /usr/local/sbin/fixup-mirrors
|
|
|
|
# setup entrypoint, this will wrap commands with `linux32` with i686 images
|
|
COPY build_scripts/install-entrypoint.sh \
|
|
build_scripts/build_utils.sh \
|
|
/build_scripts/
|
|
|
|
RUN /build_scripts/install-entrypoint.sh && rm -rf /build_scripts
|
|
COPY manylinux-entrypoint /usr/local/bin/manylinux-entrypoint
|
|
ENTRYPOINT ["manylinux-entrypoint"]
|
|
|
|
COPY build_scripts/install-runtime-packages.sh \
|
|
build_scripts/build_utils.sh \
|
|
/build_scripts/
|
|
RUN manylinux-entrypoint /build_scripts/install-runtime-packages.sh && rm -rf /build_scripts/
|
|
|
|
COPY build_scripts/build_utils.sh /build_scripts/
|
|
|
|
COPY build_scripts/install-autoconf.sh /build_scripts/
|
|
RUN export AUTOCONF_ROOT=autoconf-2.71 && \
|
|
export AUTOCONF_HASH=431075ad0bf529ef13cb41e9042c542381103e80015686222b8a9d4abef42a1c && \
|
|
export AUTOCONF_DOWNLOAD_URL=http://ftp.gnu.org/gnu/autoconf && \
|
|
manylinux-entrypoint /build_scripts/install-autoconf.sh
|
|
|
|
COPY build_scripts/install-automake.sh /build_scripts/
|
|
RUN export AUTOMAKE_ROOT=automake-1.16.5 && \
|
|
export AUTOMAKE_HASH=07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605 && \
|
|
export AUTOMAKE_DOWNLOAD_URL=http://ftp.gnu.org/gnu/automake && \
|
|
manylinux-entrypoint /build_scripts/install-automake.sh
|
|
|
|
COPY build_scripts/install-libtool.sh /build_scripts/
|
|
RUN export LIBTOOL_ROOT=libtool-2.4.7 && \
|
|
export LIBTOOL_HASH=04e96c2404ea70c590c546eba4202a4e12722c640016c12b9b2f1ce3d481e9a8 && \
|
|
export LIBTOOL_DOWNLOAD_URL=http://ftp.gnu.org/gnu/libtool && \
|
|
manylinux-entrypoint /build_scripts/install-libtool.sh
|
|
|
|
COPY build_scripts/install-libxcrypt.sh /build_scripts/
|
|
RUN export LIBXCRYPT_VERSION=4.4.28 && \
|
|
export LIBXCRYPT_HASH=db7e37901969cb1d1e8020cb73a991ef81e48e31ea5b76a101862c806426b457 && \
|
|
export LIBXCRYPT_DOWNLOAD_URL=https://github.com/besser82/libxcrypt/archive && \
|
|
export PERL_ROOT=perl-5.34.0 && \
|
|
export PERL_HASH=551efc818b968b05216024fb0b727ef2ad4c100f8cb6b43fab615fa78ae5be9a && \
|
|
export PERL_DOWNLOAD_URL=https://www.cpan.org/src/5.0 && \
|
|
manylinux-entrypoint /build_scripts/install-libxcrypt.sh
|
|
|
|
|
|
FROM runtime_base AS build_base
|
|
COPY build_scripts/install-build-packages.sh /build_scripts/
|
|
RUN manylinux-entrypoint /build_scripts/install-build-packages.sh
|
|
|
|
|
|
FROM build_base AS build_git
|
|
COPY build_scripts/build-git.sh /build_scripts/
|
|
RUN export GIT_ROOT=git-2.36.2 && \
|
|
export GIT_HASH=6dc2cdea5fb23d823ba4871cc23222c1db31dfbb6d6c6ff74c4128700df57c68 && \
|
|
export GIT_DOWNLOAD_URL=https://www.kernel.org/pub/software/scm/git && \
|
|
manylinux-entrypoint /build_scripts/build-git.sh
|
|
|
|
|
|
FROM build_base AS build_cpython
|
|
COPY build_scripts/build-sqlite3.sh /build_scripts/
|
|
RUN export SQLITE_AUTOCONF_ROOT=sqlite-autoconf-3390200 && \
|
|
export SQLITE_AUTOCONF_HASH=852be8a6183a17ba47cee0bbff7400b7aa5affd283bf3beefc34fcd088a239de && \
|
|
export SQLITE_AUTOCONF_DOWNLOAD_URL=https://www.sqlite.org/2022 && \
|
|
manylinux-entrypoint /build_scripts/build-sqlite3.sh
|
|
|
|
COPY build_scripts/build-openssl.sh /build_scripts/
|
|
RUN export OPENSSL_ROOT=openssl-1.1.1q && \
|
|
export OPENSSL_HASH=d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca && \
|
|
export OPENSSL_DOWNLOAD_URL=https://www.openssl.org/source && \
|
|
manylinux-entrypoint /build_scripts/build-openssl.sh
|
|
|
|
COPY build_scripts/build-cpython.sh /build_scripts/
|
|
|
|
|
|
FROM build_cpython AS build_cpython38
|
|
COPY build_scripts/ambv-pubkey.txt /build_scripts/cpython-pubkeys.txt
|
|
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.8.13
|
|
|
|
|
|
FROM build_cpython AS build_cpython39
|
|
COPY build_scripts/ambv-pubkey.txt /build_scripts/cpython-pubkeys.txt
|
|
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.9.13
|
|
|
|
|
|
FROM build_cpython AS build_cpython310
|
|
COPY build_scripts/cpython-pubkey-310-311.txt /build_scripts/cpython-pubkeys.txt
|
|
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.10.5
|
|
|
|
|
|
FROM build_cpython AS build_cpython311
|
|
COPY build_scripts/cpython-pubkey-310-311.txt /build_scripts/cpython-pubkeys.txt
|
|
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.11.2
|
|
|
|
|
|
FROM build_cpython AS all_python
|
|
COPY build_scripts/install-pypy.sh \
|
|
build_scripts/pypy.sha256 \
|
|
build_scripts/finalize-python.sh \
|
|
/build_scripts/
|
|
RUN manylinux-entrypoint /build_scripts/install-pypy.sh 3.8 7.3.9
|
|
RUN manylinux-entrypoint /build_scripts/install-pypy.sh 3.9 7.3.9
|
|
COPY --from=build_cpython38 /opt/_internal /opt/_internal/
|
|
COPY --from=build_cpython39 /opt/_internal /opt/_internal/
|
|
COPY --from=build_cpython310 /opt/_internal /opt/_internal/
|
|
COPY --from=build_cpython311 /opt/_internal /opt/_internal/
|
|
RUN manylinux-entrypoint /build_scripts/finalize-python.sh
|
|
|
|
|
|
FROM runtime_base
|
|
COPY --from=build_git /manylinux-rootfs /
|
|
COPY --from=build_cpython /manylinux-rootfs /
|
|
COPY --from=all_python /opt/_internal /opt/_internal/
|
|
COPY build_scripts/finalize.sh \
|
|
build_scripts/python-tag-abi-tag.py \
|
|
build_scripts/requirements3.8.txt \
|
|
build_scripts/requirements3.9.txt \
|
|
build_scripts/requirements3.10.txt \
|
|
build_scripts/requirements3.11.txt \
|
|
build_scripts/requirements-base-tools.txt \
|
|
/build_scripts/
|
|
COPY build_scripts/requirements-tools/* /build_scripts/requirements-tools/
|
|
RUN manylinux-entrypoint /build_scripts/finalize.sh && rm -rf /build_scripts
|
|
|
|
ENV SSL_CERT_FILE=/opt/_internal/certs.pem
|
|
|
|
CMD ["/bin/bash"]
|
|
|
|
#Build manylinux2014 docker image end
|
|
|
|
ARG PYTHON_VERSION=3.8
|
|
ARG OPSET_VERSION=15
|
|
ARG INSTALL_DEPS_EXTRA_ARGS
|
|
|
|
#Add our own dependencies
|
|
ADD scripts /tmp/scripts
|
|
RUN cd /tmp/scripts && \
|
|
/tmp/scripts/manylinux/install_centos.sh && \
|
|
/tmp/scripts/install_os_deps.sh -d gpu $INSTALL_DEPS_EXTRA_ARGS && \
|
|
/tmp/scripts/install_python_deps.sh -d gpu -p 3.8 $INSTALL_DEPS_EXTRA_ARGS && \
|
|
/tmp/scripts/install_python_deps.sh -d gpu -p 3.9 $INSTALL_DEPS_EXTRA_ARGS && \
|
|
/tmp/scripts/install_python_deps.sh -d gpu -p 3.10 $INSTALL_DEPS_EXTRA_ARGS && \
|
|
rm -rf /tmp/scripts
|
|
|
|
|
|
ARG BUILD_UID=1001
|
|
ARG BUILD_USER=onnxruntimedev
|
|
RUN adduser --uid $BUILD_UID $BUILD_USER
|
|
WORKDIR /home/$BUILD_USER
|
|
USER $BUILD_USER
|
|
ENV PATH /usr/local/dotnet:$PATH
|
|
ENV ORTMODULE_ONNX_OPSET_VERSION=$OPSET_VERSION
|