Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cross-platform build (arm64 build from x86_64 host) fails with run_dev.sh #144

Open
akupferb opened this issue Sep 2, 2024 · 1 comment

Comments

@akupferb
Copy link

akupferb commented Sep 2, 2024

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
@akupferb
Copy link
Author

akupferb commented Sep 2, 2024

My forked repo for isaac-ros-common can be found here, with the added params to modify the PLATFORM build.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant