In previous versions (pre Isaac-ROS 3) of the run_dev.sh script, I could change the PLATFORM arg from being the default "$(uname -m)" to be configured by param for either x86_64 or aarch64 and the build was successful for the full set of layers: {platform}.ros2_humble.realsense.user.isaac... (where the "isaac" layer is our own added Dockerfile)
However, with the new run_dev process which uses the build_image_layers.sh script, when trying to set the PLATFORM to be aarch64 on my x86 host, I get the following error:
Launching Isaac ROS Dev container with image key aarch64.ros2_humble.realsense.user.isaac: /home/$USER/workspaces/isaac_ros-dev
Building aarch64.ros2_humble.realsense.user.isaac base as image: isaac_ros_dev-aarch64
Building layered image for key aarch64.ros2_humble.realsense.user.isaac as isaac_ros_dev-aarch64
Using configured docker search paths: /home/$USER/workspaces/src/isaac_ros_common/scripts/../docker
WARNING: Skipping remote registry check for prebuilt images
Resolved the following 5 Dockerfiles for target image: aarch64.ros2_humble.realsense.user.isaac
/home/$USER/workspaces/Dockerfile.isaac
/home/$USER/workspaces/src/isaac_ros_common/scripts/../docker/Dockerfile.user
/home/$USER/workspaces/src/isaac_ros_common/scripts/../docker/Dockerfile.realsense
/home/$USER/workspaces/src/isaac_ros_common/scripts/../docker/Dockerfile.ros2_humble
/home/$USER/workspaces/src/isaac_ros_common/scripts/../docker/Dockerfile.aarch64
Building /home/$USER/workspaces/src/isaac_ros_common/scripts/../docker/Dockerfile.aarch64 as image: aarch64-image with base:
[+] Building 3.0s (26/26) FINISHED docker:default
=> [internal] load build definition from Dockerfile.aarch64 0.0s
=> => transferring dockerfile: 8.30kB 0.0s
=> [internal] load metadata for nvcr.io/nvidia/l4t-cuda:12.2.12-devel 2.9s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [stage-0 1/22] FROM nvcr.io/nvidia/l4t-cuda:12.2.12-devel@sha256:f9c4057f9c5dde81bf9d17be0eb89724fcfe2f709b3fbd1c8d9359b221b2686e 0.0s
=> CACHED [stage-0 2/22] RUN mkdir -p /opt/nvidia/isaac_ros_dev_base && dpkg-query -W | sort > /opt/nvidia/isaac_ros_dev_base/aarch64-start-packages.csv 0.0s
=> CACHED [stage-0 3/22] RUN --mount=type=cache,target=/var/cache/apt apt-get update && apt-get install -y software-properties-common && add-apt-rep 0.0s
=> CACHED [stage-0 4/22] RUN --mount=type=cache,target=/var/cache/apt apt-get update && apt-get install -y apt-utils bash-completion build-essen 0.0s
=> CACHED [stage-0 5/22] RUN --mount=type=cache,target=/var/cache/apt wget -qO - https://isaac.download.nvidia.com/isaac-ros/repos.key | apt-key add - & 0.0s
=> CACHED [stage-0 6/22] RUN --mount=type=cache,target=/var/cache/apt apt-key adv --fetch-keys https://repo.download.nvidia.com/jetson/jetson-ota-public 0.0s
=> CACHED [stage-0 7/22] RUN --mount=type=cache,target=/var/cache/apt apt-get update && apt-get install -y python3-dev python3-distutils python3 0.0s
=> CACHED [stage-0 8/22] RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1 0.0s
=> CACHED [stage-0 9/22] RUN --mount=type=cache,target=/var/cache/apt apt-get update && apt-get install -y ffmpeg gfortran graphicsmagick-libmag 0.0s
=> CACHED [stage-0 10/22] RUN python3 -m pip install -U Cython pymongo wheel scikit-learn ninja networkx "numpy<2" numpy-quat 0.0s
=> CACHED [stage-0 11/22] RUN update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-14 14 0.0s
=> CACHED [stage-0 12/22] RUN --mount=type=cache,target=/var/cache/apt apt-get update && apt-get install -y --no-install-recommends cuda-cudart-12-2 0.0s
=> CACHED [stage-0 13/22] RUN --mount=type=cache,target=/var/cache/apt mkdir -p /lib/firmware && apt-get update && apt-get install -y libnvvpi3 tenso 0.0s
=> CACHED [stage-0 14/22] RUN mkdir -p /opt/nvidia/tao && cd /opt/nvidia/tao && wget --content-disposition 'https://api.ngc.nvidia.com/v2/resources/org/n 0.0s
=> CACHED [stage-0 15/22] RUN python3 -m pip install --no-cache https://developer.download.nvidia.com/compute/redist/jp/v60dp/pytorch/torch-2.2.0a0+6 0.0s
=> CACHED [stage-0 16/22] RUN --mount=type=cache,target=/var/cache/apt apt-get update && apt-get install -y --no-install-recommends libb64-0d libre2- 0.0s
=> CACHED [stage-0 17/22] RUN --mount=type=cache,target=/var/cache/apt cd /opt && wget https://github.com/triton-inference-server/server/releases/do 0.0s
=> CACHED [stage-0 18/22] RUN --mount=type=cache,target=/var/cache/apt wget -O /tmp/boost.tar.gz https://boostorg.jfrog.io/artifactory/main/release/1 0.0s
=> CACHED [stage-0 19/22] RUN --mount=type=cache,target=/var/cache/apt cd /tmp && wget https://github.com/CVCUDA/CV-CUDA/releases/download/v0.5.0-bet 0.0s
=> CACHED [stage-0 20/22] RUN --mount=type=cache,target=/var/cache/apt apt-add-repository ppa:mosquitto-dev/mosquitto-ppa && apt-get update && apt-get instal 0.0s
=> CACHED [stage-0 21/22] RUN python3 -m pip install -U jetson-stats 0.0s
=> CACHED [stage-0 22/22] RUN mkdir -p /opt/nvidia/isaac_ros_dev_base && dpkg-query -W | sort > /opt/nvidia/isaac_ros_dev_base/aarch64-end-packages.csv 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:c6caaf7f0026ecb080840e07ca0fe04f36ea8b43455282d3f623c7e4ef36092c 0.0s
=> => naming to docker.io/library/aarch64-image 0.0s
Building /home/$USER/workspaces/src/isaac_ros_common/scripts/../docker/Dockerfile.ros2_humble as image: ros2_humble-image with base: aarch64-image
[+] Building 1.4s (2/2) FINISHED docker:default
=> [internal] load build definition from Dockerfile.ros2_humble 0.0s
=> => transferring dockerfile: 13.51kB 0.0s
=> WARN: InvalidDefaultArgInFrom: Default value for ARG $BASE_IMAGE results in empty or invalid base image name (line 10) 0.0s
=> ERROR [internal] load metadata for docker.io/library/aarch64-image:latest 1.4s
------
> [internal] load metadata for docker.io/library/aarch64-image:latest:
------
Dockerfile.ros2_humble:10
--------------------
8 |
9 | ARG BASE_IMAGE
10 | >>> FROM $BASE_IMAGE
11 |
12 | # Store list of packages (must be first)
--------------------
ERROR: failed to solve: aarch64-image: failed to resolve source metadata for docker.io/library/aarch64-image:latest: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
In previous versions (pre Isaac-ROS 3) of the run_dev.sh script, I could change the
PLATFORM
arg from being the default"$(uname -m)"
to be configured by param for eitherx86_64
oraarch64
and the build was successful for the full set of layers:{platform}.ros2_humble.realsense.user.isaac
... (where the "isaac" layer is our own added Dockerfile) However, with the new run_dev process which uses thebuild_image_layers.sh
script, when trying to set the PLATFORM to beaarch64
on my x86 host, I get the following error: