I’m trying to build the deepstream container as described in this NVIDIA guide.
I want to build it in an x86/64 Ubuntu and after building it, convert it to a .tar image and move it into a Jetson Nano and run it there. By starting the build using the command docker build --network=host -t deepstream_image:jetson I get the error below:
=> => transferring dockerfile: 5.22kB 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> ERROR [internal] load metadata for nvcr.io/nvidia/l4t-tensorrt:r8.5.2.2-runtime 4.0s
=> [auth] nvidia/l4t-tensorrt:pull,push token for nvcr.io 0.0s
------
> [internal] load metadata for nvcr.io/nvidia/l4t-tensorrt:r8.5.2.2-runtime:
------
Jetson_Dockerfile_Base:16
--------------------
14 | # Use L4T tensorrt docker listed on https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-tensorrt/tags
15 | # Use r8.5.2.2 for DS 6.2.0
16 | >>> FROM nvcr.io/nvidia/l4t-tensorrt:r8.5.2.2-runtime
17 |
18 | #Install vpi-dev and vpi-lib
--------------------
ERROR: failed to solve: nvcr.io/nvidia/l4t-tensorrt:r8.5.2.2-runtime: nvcr.io/nvidia/l4t-tensorrt:r8.5.2.2-runtime: not found
It seems there’s a problem with libnvvpi2 and it doesn’t exist in the apt repository.
I’m using an x86/64 Ubuntu 20.04 on a desktop machine and I want to build the Jetson Docker on it and then transfer the image to a real Jetson Nano device. Is the problem related to this or am I simply missing an apt repository that contains libnvvpi2?
(1) The (TensorRT image) updated the image version after release. They did some changes on how they version images.
(2) For the VPI install you need to be more explicitly state which VPI version you need.
apt-cache policy vpi2-dev
apt-cache policy libnvvpi2
apt-cache policy vpi2-samples
The format of the install would be like this and match the VPI version (should be version 2.2) included in the corresponding(matching) JetPack version 5.1 GA (Index) that was required for DS 6.2
In the you might have to do and install like with version being 2.2.
libnvvpi2=${version}
vpi2-dev=${version}
vpi2-samples=${version}
Alternatively, you may have to explicitly add the VPI *.deb files (from JetPack 5.1) inside the Dockerfile. This would be added in the jetson directory.
ADD vpi-dev-2.2-aarch64-l4t.deb /root
ADD vpi-lib-2.2-aarch64-l4t.deb /root
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
/root/vpi-dev-2.2-aarch64-l4t.deb \
/root/vpi-lib-2.2-aarch64-l4t.deb && \
rm -rf /var/lib/apt/lists/* && \
rm -f /root/vpi-dev-2.2-aarch64-l4t.deb /root/vpi-lib-2.2-aarch64-l4t.deb && \
apt autoremove
Follow these steps to resolve the issue and successfully build your DeepStream container:
1. Verify the Image Version
First, ensure you are using the correct and latest version of the TensorRT image. NVIDIA occasionally updates their image versions, which might not be reflected in older guides.
Update your Dockerfile to use the correct version.
2. Update Your Dockerfile
Modify your Dockerfile to use the latest TensorRT image version. For example, if the latest version is r8.5.3.0-runtime, update your Dockerfile accordingly: