ros-swg / turtlebot3_demo

Repository to build and test Turtlebot3 packages
Apache License 2.0
20 stars 6 forks source link

launch_ros_sandbox: Cannot locate rosdep definition for [python3-docker] #20

Closed ruffsl closed 4 years ago

ruffsl commented 4 years ago

It looks like the launch_ros_sandbox package is declaring a dependency that rosdep can not resolve. Could amazon please fix this either with adding the dependency to rosdistro repo, or adjusting the launch_ros_sandbox to avoid blocking the demo's docker build?

Step 11/21 : RUN . /opt/ros/$ROS_DISTRO/setup.sh     && rosdep install -y       --from-paths src       --ignore-src       --skip-keys "             ament_mypy             libopensplice69             rti-connext-dds-5.3.1         "     && rm -rf /var/lib/apt/lists/*
 ---> Running in 242c60f58d76
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
launch_ros_sandbox: Cannot locate rosdep definition for [python3-docker]
The command '/bin/sh -c . /opt/ros/$ROS_DISTRO/setup.sh     && rosdep install -y       --from-paths src       --ignore-src       --skip-keys "             ament_mypy             libopensplice69             rti-connext-dds-5.3.1         "     && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 1

cc @piraka9011 @emersonknapp @thomas-moulard

emersonknapp commented 4 years ago

What is your ROS_DISTRO?

ruffsl commented 4 years ago

What is your ROS_DISTRO?

Dashing, as in the Dockerfile:

https://github.com/ros-swg/turtlebot3_demo/blob/be24c0b097664738cd6a53ac0ec400d79c9dab46/Dockerfile#L1

mikaelarguedas commented 4 years ago

Is your rosdep database up to date? Or did rosdep update rely on the docker cache?

Looks like the key is valid and was added a couple weeks back: https://github.com/ros/rosdistro/blob/master/rosdep/python.yaml https://github.com/ros/rosdistro/pull/22263

emersonknapp commented 4 years ago

python3-docker was added in this PR https://github.com/ros/rosdistro/pull/22263/files - my guess is this is a Dockerfile caching problem from rosdep update being run separate from rosdep install, similar to how Dockerfiles should run apt-get update && apt-get install to prevent discrepancy.

EDIT: @mikaelarguedas yeah I think you're right about the docker cache https://github.com/ros-swg/turtlebot3_demo/blob/master/Dockerfile#L5

ruffsl commented 4 years ago

Shoot, I rebuilt the entire ros stack, but the make file in the osrf/docker_images tags the image using the full tag, while the Dockerfile here uses the abbreviated tag. That short form is something that the DockerHub post push hook adds. I summary, when building from scratch, don't forget to tweek the Dockerfile FROM directive or retag the new image locally:

docker tag osrf/ros:dashing-desktop-bionic osrf/ros:dashing-desktop