Docker Problem with libnvinfer.so.10

Dear Support Team

I’m currently experiencing issues with your Docker setup for ARM architectures (Jetson). I’m using the Dockerfile provided below, based on dustynv/ros:humble-ros-base-l4t-r36.3.0, and targeting JetPack 6.0.1 (L4T 36.4).

The ZED SDK (even from version 4.2 onward) requires libnvinfer.so.10, but the base image appears to reference TensorRT 8 by default. This causes runtime errors when the ZED SDK attempts to load its AI module, as TensorRT 10 is not properly linked or recognized.

Although I manually copy libnvinfer.so.10 into the container and run ldconfig, the SDK still fails to bind it correctly. Additionally, NVIDIA has not yet published an updated base image that natively supports TensorRT 10 for JetPack 6, which complicates things further.

Do you have any recommendations or workarounds for ensuring proper TensorRT 10 integration in this Docker environment? Is there a preferred base image or setup that supports ZED SDK 5.x and TensorRT 10 on Jetson with ROS 2 Humble?

I’ve attached the full Dockerfile below for reference.

Thank you in advance for your support.

Kind regards,

\# Define the L4T_VERSION argument
ARG L4T_VERSION=l4t-r36.4.0
ARG IMAGE_NAME=dustynv/ros:humble-ros-base-l4t-r36.3.0 

FROM ${IMAGE_NAME} 

\# ARG ZED_SDK_MAJOR=4
\# ARG ZED_SDK_MINOR=2
\# ARG ZED_SDK_PATCH=3
ARG ZED_SDK_MAJOR=5
ARG ZED_SDK_MINOR=1
ARG ZED_SDK_PATCH=0 

ARG L4T_MAJOR=36
ARG L4T_MINOR=4

\# Optional: Override ZED SDK URL
ARG CUSTOM_ZED_SDK_URL=""

\# ROS 2 distribution
ARG ROS2_DIST=humble 

\# ZED ROS2 Wrapper dependencies version
ARG XACRO_VERSION=2.0.8
ARG DIAGNOSTICS_VERSION=4.0.0
ARG AMENT_LINT_VERSION=0.12.11
ARG ROBOT_LOCALIZATION_VERSION=3.5.3
ARG ZED_MSGS_VERSION=5.0.0
ARG NMEA_MSGS_VERSION=2.0.0
ARG ANGLES_VERSION=1.15.0
ARG GEOGRAPHIC_INFO_VERSION=1.0.6
ARG POINTCLOUD_TRANSPORT_VERSION=1.0.18
ARG POINTCLOUD_TRANSPORT_PLUGINS_VERSION=1.0.11
ARG RMW_CYCLONEDDS_VERSION=1.3.4
ARG BACKWARD_ROS_VERSION=1.0.7
ENV PYPI_URL=https://pypi.jetson-ai-lab.io/jp6/cu126 

ENV DEBIAN_FRONTEND=noninteractive 

\# ZED SDK link
ENV ZED_SDK_URL=${CUSTOM_ZED_SDK_URL:-[https://download.stereolabs.com/zedsdk/${ZED_SDK_MAJOR}.${ZED_SDK_MINOR}.${ZED_SDK_PATCH}/l4t${L4T_MAJOR}.${L4T_MINOR}/jetsons](https://download.stereolabs.com/zedsdk/$%7bZED_SDK_MAJOR%7d.$%7bZED_SDK_MINOR%7d.$%7bZED_SDK_PATCH%7d/l4t$%7bL4T_MAJOR%7d.$%7bL4T_MINOR%7d/jetsons)} 

\# Check that this SDK exists
RUN if \[ "$(curl -L -I "${ZED_SDK_URL}" -o /dev/null -s -w '%{http_code}\\n' | head -n 1)" = "200" \]; then \\
        echo "The URL points to something."; \\
    else \\
        echo "The URL does not point to a .run file or the file does not exist."; \\
        exit 1; \\
    fi

RUN curl -fsSL [https://raw.githubusercontent.com/ros/rosdistro/master/ros.key](https://raw.githubusercontent.com/ros/rosdistro/master/ros.key) -o /usr/share/keyrings/ros-archive-keyring.gpg && \\
   apt-get update || true && apt-get install -y --no-install-recommends apt-utils dialog && \\
   rm -rf /var/lib/apt/lists/\* 

ENV TZ=Europe/Paris 

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \\
  apt-get update && \\
  apt-get install --yes lsb-release wget less udev sudo build-essential cmake python3 python3-dev python3-pip python3-wheel git jq libpq-dev zstd usbutils && \\   
  rm -rf /var/lib/apt/lists/\* 

RUN echo "# R${L4T_MAJOR} (release), REVISION: ${L4T_MINOR}" > /etc/nv_tegra_release && \\
  apt-get update -y || true && \\
  apt-get install -y --no-install-recommends zstd wget less cmake curl gnupg2 \\
  build-essential python3 python3-pip python3-dev python3-setuptools libusb-1.0-0-dev \\
  libgeographic-dev libdraco-dev zlib1g-dev -y && \\
  export PIP_INDEX_URL="${PYPI_URL}" && \\
  pip install protobuf && \\
  wget -q --no-check-certificate -O ZED_SDK_Linux_JP.run \\
  ${ZED_SDK_URL} && \\
  chmod +x ZED_SDK_Linux_JP.run ; ./ZED_SDK_Linux_JP.run silent skip_tools && \\
  rm -rf /usr/local/zed/resources/\* && \\
  rm -rf ZED_SDK_Linux_JP.run && \\
  rm -rf /var/lib/apt/lists/\* 

\# Install the ZED ROS2 Wrapper
ENV ROS_DISTRO=${ROS2_DIST} 

\# Copy the sources in the Docker image
WORKDIR /usr/local/zed/ros2_ws/src
#COPY tmp_sources/ ./ 

\# Install missing dependencies from the sources
WORKDIR /root/ros2_ws/src

RUN wget [https://github.com/ros/xacro/archive/refs/tags/${XACRO_VERSION}.tar.gz](https://github.com/ros/xacro/archive/refs/tags/$%7bXACRO_VERSION%7d.tar.gz) -O - | tar -xvz && mv xacro-${XACRO_VERSION} xacro && \\
    wget [https://github.com/ros/diagnostics/archive/refs/tags/${DIAGNOSTICS_VERSION}.tar.gz](https://github.com/ros/diagnostics/archive/refs/tags/$%7bDIAGNOSTICS_VERSION%7d.tar.gz) -O - | tar -xvz && mv diagnostics-${DIAGNOSTICS_VERSION} diagnostics && \\
    wget [https://github.com/ament/ament_lint/archive/refs/tags/${AMENT_LINT_VERSION}.tar.gz](https://github.com/ament/ament_lint/archive/refs/tags/$%7bAMENT_LINT_VERSION%7d.tar.gz) -O - | tar -xvz && mv ament_lint-${AMENT_LINT_VERSION} ament-lint && \\
    wget [https://github.com/cra-ros-pkg/robot_localization/archive/refs/tags/${ROBOT_LOCALIZATION_VERSION}.tar.gz](https://github.com/cra-ros-pkg/robot_localization/archive/refs/tags/$%7bROBOT_LOCALIZATION_VERSION%7d.tar.gz) -O - | tar -xvz && mv robot_localization-${ROBOT_LOCALIZATION_VERSION} robot-localization && \\
    wget [https://github.com/stereolabs/zed-ros2-interfaces/archive/refs/tags/${ZED_MSGS_VERSION}.tar.gz](https://github.com/stereolabs/zed-ros2-interfaces/archive/refs/tags/$%7bZED_MSGS_VERSION%7d.tar.gz) -O - | tar -xvz && mv zed-ros2-interfaces-${ZED_MSGS_VERSION} zed-ros2-interfaces && \\
    wget [https://github.com/ros-drivers/nmea_msgs/archive/refs/tags/${NMEA_MSGS_VERSION}.tar.gz](https://github.com/ros-drivers/nmea_msgs/archive/refs/tags/$%7bNMEA_MSGS_VERSION%7d.tar.gz) -O - | tar -xvz && mv nmea_msgs-${NMEA_MSGS_VERSION} nmea_msgs && \\
    wget [https://github.com/ros/angles/archive/refs/tags/${ANGLES_VERSION}.tar.gz](https://github.com/ros/angles/archive/refs/tags/$%7bANGLES_VERSION%7d.tar.gz) -O - | tar -xvz && mv angles-${ANGLES_VERSION} angles && \\
    #wget [https://github.com/ros-perception/point_cloud_transport/archive/refs/tags/${POINTCLOUD_TRANSPORT_VERSION}.tar.gz](https://github.com/ros-perception/point_cloud_transport/archive/refs/tags/$%7bPOINTCLOUD_TRANSPORT_VERSION%7d.tar.gz) -O - | tar -xvz && mv point_cloud_transport-${POINTCLOUD_TRANSPORT_VERSION} point_cloud_transport && \\
    #wget [https://github.com/ros-perception/point_cloud_transport_plugins/archive/refs/tags/${POINTCLOUD_TRANSPORT_PLUGINS_VERSION}.tar.gz](https://github.com/ros-perception/point_cloud_transport_plugins/archive/refs/tags/$%7bPOINTCLOUD_TRANSPORT_PLUGINS_VERSION%7d.tar.gz) -O - | tar -xvz && mv point_cloud_transport_plugins-${POINTCLOUD_TRANSPORT_PLUGINS_VERSION} point_cloud_transport_plugins && \\
    wget [https://github.com/ros2/rmw_cyclonedds/archive/refs/tags/${RMW_CYCLONEDDS_VERSION}.tar.gz](https://github.com/ros2/rmw_cyclonedds/archive/refs/tags/$%7bRMW_CYCLONEDDS_VERSION%7d.tar.gz) -O - | tar -xvz && mv rmw_cyclonedds-${RMW_CYCLONEDDS_VERSION} rmw_cyclonedds && \\
    wget [https://github.com/ros-geographic-info/geographic_info/archive/refs/tags/${GEOGRAPHIC_INFO_VERSION}.tar.gz](https://github.com/ros-geographic-info/geographic_info/archive/refs/tags/$%7bGEOGRAPHIC_INFO_VERSION%7d.tar.gz) -O - | tar -xvz && mv geographic_info-${GEOGRAPHIC_INFO_VERSION} geographic-info && \\
    wget [https://github.com/pal-robotics/backward_ros/archive/refs/tags/${BACKWARD_ROS_VERSION}.tar.gz](https://github.com/pal-robotics/backward_ros/archive/refs/tags/$%7bBACKWARD_ROS_VERSION%7d.tar.gz) -O - | tar -xvz && mv backward_ros-${BACKWARD_ROS_VERSION} backward_ros && \\
    cp -r geographic-info/geographic_msgs/ . && \\
    rm -rf geographic-info   

\# Install cython
#RUN python3 -m pip install --upgrade cython 

\# Build the dependencies and the ZED ROS2 Wrapper
WORKDIR /usr/local/zed/ros2_ws

RUN /bin/bash -c "source /opt/ros/$ROS_DISTRO/install/setup.bash && \\
  colcon build --parallel-workers $(nproc) --symlink-install \\
  --event-handlers console_direct+ --base-paths src \\
  --cmake-args ' -DCMAKE_BUILD_TYPE=Release' \\
  ' -DCMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs' \\
  ' -DCMAKE_CXX_FLAGS="-Wl,--allow-shlib-undefined"' \\
  ' --no-warn-unused-cli' " 

WORKDIR /usr/local/zed

\# Setup environment variables
COPY ros_entrypoint_jetson.sh ros_entrypoint_jetson.sh
RUN sudo chmod 755 ros_entrypoint_jetson.sh 

ENTRYPOINT \["ros_entrypoint_jetson.sh"\]
CMD \["bash"\]

Hi @becketps
Welcome to the Stereolabs community.

Please copy and paste also the error message that you receive.