# A image for building paddle binaries # Use cuda devel base image for both cpu and gpu environment # When you modify it, please be aware of cudnn-runtime version ARG CUDA_VERSION=13.0 ARG BASE_TARGET=cuda${CUDA_VERSION} FROM nvcr.io/nvidia/cuda:13.0.2-cudnn-devel-ubuntu24.04 as base # ENV variables ARG WITH_GPU ARG WITH_AVX ARG WITH_ARM ARG PYTHON_VERSION=3.13 ENV WITH_GPU=${WITH_GPU:-ON} ENV WITH_AVX=${WITH_AVX:-ON} ENV WITH_ARM=${WITH_ARM:-ON} ENV DEBIAN_FRONTEND=noninteractive ENV LD_LIBRARY_PATH=/usr/local/cuda-${CUDA_VERSION}/compat:/usr/local/cuda-${CUDA_VERSION}/targets/x86_64-linux/lib:$LD_LIBRARY_PATH ENV HOME /root ARG HTTP_PROXY ARG HTTPS_PROXY ARG NO_PROXY ENV http_proxy=${HTTP_PROXY} \ https_proxy=${HTTPS_PROXY} \ no_proxy=${NO_PROXY} RUN apt-get update && \ apt-get install -y software-properties-common && \ add-apt-repository -y ppa:deadsnakes/ppa && \ apt-get update --allow-unauthenticated && \ apt-get install -y --no-install-recommends \ git \ vim \ curl \ wget \ make \ libgl1 \ libglib2.0-0 \ libssl-dev \ autoconf \ automake \ libtool \ libmlx5-1 \ libibverbs-dev \ ninja-build \ zlib1g-dev \ python${PYTHON_VERSION} \ python${PYTHON_VERSION}-dev \ python${PYTHON_VERSION}-venv && \ ln -sf /usr/bin/python${PYTHON_VERSION} /usr/bin/python && \ ln -sf /usr/bin/python${PYTHON_VERSION} /usr/bin/python3 && \ rm -rf /var/lib/apt/lists/* WORKDIR /home RUN wget -q https://cmake.org/files/v3.31/cmake-3.31.0-linux-aarch64.tar.gz && \ tar -zxf cmake-3.31.0-linux-aarch64.tar.gz && \ rm cmake-3.31.0-linux-aarch64.tar.gz && \ rm -rf /home/cmake-3.31.0-linux-aarch64/doc /home/cmake-3.31.0-linux-aarch64/man ENV PATH=/home/cmake-3.31.0-linux-aarch64/bin:$PATH ARG TMP_DIR=patchelf_tmp RUN rm -rf "$TMP_DIR" && git clone -b 0.15.0 https://github.com/NixOS/patchelf "$TMP_DIR" && \ cd "$TMP_DIR" && ./bootstrap.sh && \ ./configure && make && make install && \ cd .. && rm -rf "$TMP_DIR" RUN wget -q https://paddle-ci.gz.bcebos.com/ccache-4.8.2.tar.gz && \ tar xf ccache-4.8.2.tar.gz && mkdir /usr/local/ccache-4.8.2 && cd ccache-4.8.2 && \ mkdir build && cd build && \ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ccache-4.8.2 .. && \ make -j8 && make install && \ ln -s /usr/local/ccache-4.8.2/bin/ccache /usr/bin/ccache && \ cd ../../ && rm -rf ccache-4.8.2.tar.gz && rm -rf ccache-4.8.2 COPY paddle/scripts/compile_requirements.txt /root COPY python/requirements.txt /root #install pip3 RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python${PYTHON_VERSION} && \ ln -sf /usr/bin/pip${PYTHON_VERSION} /usr/bin/pip3 && \ ln -sf /usr/bin/pip${PYTHON_VERSION} /usr/bin/pip RUN pip install --break-system-packages -r /root/requirements.txt && \ pip install --break-system-packages -r /root/compile_requirements.txt && \ pip install wheel && \ rm -rf /root/compile_requirements.txt /root/requirements.txt RUN pip config set global.break-system-packages true #install gdrcopy RUN cd /usr/local && wget -q https://paddle-ci.gz.bcebos.com/gdrcopy.tar && tar xf gdrcopy.tar && rm -rf gdrcopy.tar ENV GDRCOPY_HOME=/usr/local/gdrcopy