From 7877e1a9cdd09420fca17e30c8c3027878621328 Mon Sep 17 00:00:00 2001 From: Mikael Arguedas Date: Sat, 31 May 2025 20:24:56 +0200 Subject: [PATCH 1/9] [TO REVERT] enable EOL distros to test ros1_bridge images and snapshots apt repo Signed-off-by: Mikael Arguedas --- docker/requirements.txt | 2 +- ros/manifest.yaml | 52 ++++++++++++++++++++--------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/docker/requirements.txt b/docker/requirements.txt index 6d7bed435..cb3662a50 100644 --- a/docker/requirements.txt +++ b/docker/requirements.txt @@ -9,7 +9,7 @@ ros_buildfarm ###### Requirements with Repo Specifiers ###### # See https://pip.readthedocs.io/en/stable/reference/pip_install/#git -git+https://github.com/osrf/docker_templates.git@master#egg=docker_templates +git+https://github.com/osrf/docker_templates.git@follow-up-templates-114#egg=docker_templates ###### Requirements with Version Specifiers ###### # See https://www.python.org/dev/peps/pep-0440/#version-specifiers diff --git a/ros/manifest.yaml b/ros/manifest.yaml index e013a6ae5..9f5be0bea 100644 --- a/ros/manifest.yaml +++ b/ros/manifest.yaml @@ -536,19 +536,19 @@ release_names: - arm64v8 tag_names: # EOL - # ros-core: - # aliases: - # - "$release_name-ros-core" - # - "$release_name-ros-core-$os_code_name" - # ros-base: - # aliases: - # - "$release_name-ros-base" - # - "$release_name-ros-base-$os_code_name" - # - "$release_name" - # ros1-bridge: - # aliases: - # - "$release_name-ros1-bridge" - # - "$release_name-ros1-bridge-$os_code_name" + ros-core: + aliases: + - "$release_name-ros-core" + - "$release_name-ros-core-$os_code_name" + ros-base: + aliases: + - "$release_name-ros-base" + - "$release_name-ros-base-$os_code_name" + - "$release_name" + ros1-bridge: + aliases: + - "$release_name-ros1-bridge" + - "$release_name-ros1-bridge-$os_code_name" humble: eol: 2025-05 os_names: @@ -585,19 +585,19 @@ release_names: - arm64v8 tag_names: # EOL - # ros-core: - # aliases: - # - "$release_name-ros-core" - # - "$release_name-ros-core-$os_code_name" - # ros-base: - # aliases: - # - "$release_name-ros-base" - # - "$release_name-ros-base-$os_code_name" - # - "$release_name" - # perception: - # aliases: - # - "$release_name-perception" - # - "$release_name-perception-$os_code_name" + ros-core: + aliases: + - "$release_name-ros-core" + - "$release_name-ros-core-$os_code_name" + ros-base: + aliases: + - "$release_name-ros-base" + - "$release_name-ros-base-$os_code_name" + - "$release_name" + perception: + aliases: + - "$release_name-perception" + - "$release_name-perception-$os_code_name" jazzy: eol: 2029-05 os_names: From 578183a197974e9e76ced9e9106b1c038c69a63e Mon Sep 17 00:00:00 2001 From: Mikael Arguedas Date: Sat, 31 May 2025 20:25:45 +0200 Subject: [PATCH 2/9] [TO REVERT] Add iron generated changes to see what changes for an EOL distro Signed-off-by: Mikael Arguedas --- ros/iron/ubuntu/jammy/ros-core/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ros/iron/ubuntu/jammy/ros-core/Dockerfile b/ros/iron/ubuntu/jammy/ros-core/Dockerfile index 172d938a8..482c5d0e1 100644 --- a/ros/iron/ubuntu/jammy/ros-core/Dockerfile +++ b/ros/iron/ubuntu/jammy/ros-core/Dockerfile @@ -11,10 +11,13 @@ RUN echo 'Etc/UTC' > /etc/timezone && \ # install packages RUN apt-get update && apt-get install -q -y --no-install-recommends \ + ca-certificates \ + curl \ dirmngr \ gnupg2 \ && rm -rf /var/lib/apt/lists/* + # setup keys RUN set -eux; \ key='4B63CF8FDE49746E98FA01DDAD19BAB3CBF125EA'; \ From d2f8aab5044bcc4d3432a0c5180f4d45145d54a2 Mon Sep 17 00:00:00 2001 From: Mikael Arguedas Date: Sat, 31 May 2025 20:26:20 +0200 Subject: [PATCH 3/9] [TO REVERT] Add galactic generated changes to see what changes for an EOL distro that builds a ros1_bridge image Signed-off-by: Mikael Arguedas --- ros/galactic/ubuntu/focal/platform.yaml | 1 - ros/galactic/ubuntu/focal/ros-core/Dockerfile | 20 ++++++++++++---- .../ubuntu/focal/ros1-bridge/Dockerfile | 24 ++++++++++++------- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/ros/galactic/ubuntu/focal/platform.yaml b/ros/galactic/ubuntu/focal/platform.yaml index 05ddac53f..128967a71 100644 --- a/ros/galactic/ubuntu/focal/platform.yaml +++ b/ros/galactic/ubuntu/focal/platform.yaml @@ -11,4 +11,3 @@ platform: arch: amd64 type: distribution version: - ros_version: 2 diff --git a/ros/galactic/ubuntu/focal/ros-core/Dockerfile b/ros/galactic/ubuntu/focal/ros-core/Dockerfile index fd507ade9..53c60c1d2 100644 --- a/ros/galactic/ubuntu/focal/ros-core/Dockerfile +++ b/ros/galactic/ubuntu/focal/ros-core/Dockerfile @@ -11,21 +11,31 @@ RUN echo 'Etc/UTC' > /etc/timezone && \ # install packages RUN apt-get update && apt-get install -q -y --no-install-recommends \ + ca-certificates \ + curl \ dirmngr \ gnupg2 \ && rm -rf /var/lib/apt/lists/* + # setup keys -RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 4B63CF8FDE49746E98FA01DDAD19BAB3CBF125EA +RUN set -eux; \ + key='4B63CF8FDE49746E98FA01DDAD19BAB3CBF125EA'; \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \ + mkdir -p /usr/share/keyrings; \ + gpg --batch --export "$key" > /usr/share/keyrings/ros2-snapshots-archive-keyring.gpg; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME" # setup sources.list -RUN echo "deb http://snapshots.ros.org/galactic/final/ubuntu focal main" > /etc/apt/sources.list.d/ros2-snapshots.list +RUN echo "deb [ signed-by=/usr/share/keyrings/ros2-snapshots-archive-keyring.gpg ] http://snapshots.ros.org/galactic/final/ubuntu focal main" > /etc/apt/sources.list.d/ros2-snapshots.list # setup environment -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 -ENV ROS_DISTRO galactic +ENV ROS_DISTRO=galactic # install ros2 packages RUN apt-get update && apt-get install -y --no-install-recommends \ diff --git a/ros/galactic/ubuntu/focal/ros1-bridge/Dockerfile b/ros/galactic/ubuntu/focal/ros1-bridge/Dockerfile index 80b529053..46ba33d35 100644 --- a/ros/galactic/ubuntu/focal/ros1-bridge/Dockerfile +++ b/ros/galactic/ubuntu/focal/ros1-bridge/Dockerfile @@ -2,20 +2,26 @@ # generated from docker_images_ros2/ros1_bridge/create_ros_ros1_bridge_image.Dockerfile.em FROM ros:galactic-ros-base-focal -# setup keys -RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 +# install packages +RUN apt-get update && apt-get install -q -y --no-install-recommends \ + ca-certificates \ + curl \ + && rm -rf /var/lib/apt/lists/* + -# setup sources.list -RUN echo "deb http://packages.ros.org/ros/ubuntu focal main" > /etc/apt/sources.list.d/ros1-latest.list +RUN curl -L -s -o /tmp/ros-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/1.1.0/ros-apt-source_1.1.0.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ + && apt-get update \ + && apt-get install /tmp/ros-apt-source.deb \ + && rm -f /tmp/ros-apt-source.deb -ENV ROS1_DISTRO noetic -ENV ROS2_DISTRO galactic +ENV ROS1_DISTRO=noetic +ENV ROS2_DISTRO=galactic # install ros packages RUN apt-get update && apt-get install -y --no-install-recommends \ - ros-noetic-ros-comm=1.16.0-1* \ - ros-noetic-roscpp-tutorials=0.10.2-1* \ - ros-noetic-rospy-tutorials=0.10.2-1* \ + ros-noetic-ros-comm=1.17.4-1* \ + ros-noetic-roscpp-tutorials=0.10.3-1* \ + ros-noetic-rospy-tutorials=0.10.3-1* \ && rm -rf /var/lib/apt/lists/* # install ros2 packages From 29b92ba14be6a0f3a5c28799449601c5cf90e522 Mon Sep 17 00:00:00 2001 From: Mikael Arguedas Date: Sat, 31 May 2025 20:26:47 +0200 Subject: [PATCH 4/9] commit generated changes to non EOL ros images Signed-off-by: Mikael Arguedas --- ros/humble/ubuntu/jammy/ros-core/Dockerfile | 5 +---- ros/jazzy/ubuntu/noble/ros-core/Dockerfile | 5 +---- ros/kilted/ubuntu/noble/ros-core/Dockerfile | 5 +---- ros/noetic/ubuntu/focal/ros-core/Dockerfile | 5 +---- ros/rolling/ubuntu/noble/ros-core/Dockerfile | 5 +---- 5 files changed, 5 insertions(+), 20 deletions(-) diff --git a/ros/humble/ubuntu/jammy/ros-core/Dockerfile b/ros/humble/ubuntu/jammy/ros-core/Dockerfile index 84806be3a..3e8b62219 100644 --- a/ros/humble/ubuntu/jammy/ros-core/Dockerfile +++ b/ros/humble/ubuntu/jammy/ros-core/Dockerfile @@ -18,10 +18,7 @@ RUN apt-get update && apt-get install -q -y --no-install-recommends \ && rm -rf /var/lib/apt/lists/* -# NOTE: this doesnt deal with snapshots repo as not clear what to install for those.. -# NOTE: How do we break cache and ensure rebuild if that version changes ? -RUN export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}') ;\ - curl -L -s -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ +RUN curl -L -s -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/1.1.0/ros2-apt-source_1.1.0.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ && apt-get update \ && apt-get install /tmp/ros2-apt-source.deb \ && rm -f /tmp/ros2-apt-source.deb diff --git a/ros/jazzy/ubuntu/noble/ros-core/Dockerfile b/ros/jazzy/ubuntu/noble/ros-core/Dockerfile index c529d6fbb..b8b848b26 100644 --- a/ros/jazzy/ubuntu/noble/ros-core/Dockerfile +++ b/ros/jazzy/ubuntu/noble/ros-core/Dockerfile @@ -18,10 +18,7 @@ RUN apt-get update && apt-get install -q -y --no-install-recommends \ && rm -rf /var/lib/apt/lists/* -# NOTE: this doesnt deal with snapshots repo as not clear what to install for those.. -# NOTE: How do we break cache and ensure rebuild if that version changes ? -RUN export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}') ;\ - curl -L -s -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ +RUN curl -L -s -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/1.1.0/ros2-apt-source_1.1.0.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ && apt-get update \ && apt-get install /tmp/ros2-apt-source.deb \ && rm -f /tmp/ros2-apt-source.deb diff --git a/ros/kilted/ubuntu/noble/ros-core/Dockerfile b/ros/kilted/ubuntu/noble/ros-core/Dockerfile index 4414243d4..6323bab22 100644 --- a/ros/kilted/ubuntu/noble/ros-core/Dockerfile +++ b/ros/kilted/ubuntu/noble/ros-core/Dockerfile @@ -18,10 +18,7 @@ RUN apt-get update && apt-get install -q -y --no-install-recommends \ && rm -rf /var/lib/apt/lists/* -# NOTE: this doesnt deal with snapshots repo as not clear what to install for those.. -# NOTE: How do we break cache and ensure rebuild if that version changes ? -RUN export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}') ;\ - curl -L -s -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ +RUN curl -L -s -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/1.1.0/ros2-apt-source_1.1.0.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ && apt-get update \ && apt-get install /tmp/ros2-apt-source.deb \ && rm -f /tmp/ros2-apt-source.deb diff --git a/ros/noetic/ubuntu/focal/ros-core/Dockerfile b/ros/noetic/ubuntu/focal/ros-core/Dockerfile index 21841c6ce..9c2817afa 100644 --- a/ros/noetic/ubuntu/focal/ros-core/Dockerfile +++ b/ros/noetic/ubuntu/focal/ros-core/Dockerfile @@ -18,10 +18,7 @@ RUN apt-get update && apt-get install -q -y --no-install-recommends \ && rm -rf /var/lib/apt/lists/* -# NOTE: this doesnt deal with snapshots repo as not clear what to install for those.. -# NOTE: How do we break cache and ensure rebuild if that version changes ? -RUN export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}') ;\ - curl -L -s -o /tmp/ros-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ +RUN curl -L -s -o /tmp/ros-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/1.1.0/ros-apt-source_1.1.0.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ && apt-get update \ && apt-get install /tmp/ros-apt-source.deb \ && rm -f /tmp/ros-apt-source.deb diff --git a/ros/rolling/ubuntu/noble/ros-core/Dockerfile b/ros/rolling/ubuntu/noble/ros-core/Dockerfile index c7c05767a..f45abe53e 100644 --- a/ros/rolling/ubuntu/noble/ros-core/Dockerfile +++ b/ros/rolling/ubuntu/noble/ros-core/Dockerfile @@ -18,10 +18,7 @@ RUN apt-get update && apt-get install -q -y --no-install-recommends \ && rm -rf /var/lib/apt/lists/* -# NOTE: this doesnt deal with snapshots repo as not clear what to install for those.. -# NOTE: How do we break cache and ensure rebuild if that version changes ? -RUN export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}') ;\ - curl -L -s -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ +RUN curl -L -s -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/1.1.0/ros2-apt-source_1.1.0.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ && apt-get update \ && apt-get install /tmp/ros2-apt-source.deb \ && rm -f /tmp/ros2-apt-source.deb From 787b043f3c539c2e419d247c55c612319784e6a6 Mon Sep 17 00:00:00 2001 From: Mikael Arguedas Date: Sat, 31 May 2025 20:28:47 +0200 Subject: [PATCH 5/9] commit testing image changes to show working testing repo Signed-off-by: Mikael Arguedas --- ros2/testing/testing/Dockerfile | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/ros2/testing/testing/Dockerfile b/ros2/testing/testing/Dockerfile index a7ffe1b08..e2ba292af 100644 --- a/ros2/testing/testing/Dockerfile +++ b/ros2/testing/testing/Dockerfile @@ -9,27 +9,17 @@ RUN echo 'Etc/UTC' > /etc/timezone && \ # install packages RUN apt-get update && apt-get install -q -y --no-install-recommends \ + ca-certificates \ + curl \ dirmngr \ gnupg2 \ && rm -rf /var/lib/apt/lists/* -# setup keys -RUN set -eux; \ - key='C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654'; \ - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \ - mkdir -p /usr/share/keyrings; \ - gpg --batch --export "$key" > /usr/share/keyrings/ros2-testing-archive-keyring.gpg; \ - gpgconf --kill all; \ - rm -rf "$GNUPGHOME" -# setup sources.list -RUN echo "deb [ signed-by=/usr/share/keyrings/ros2-testing-archive-keyring.gpg ] http://packages.ros.org/ros2-testing/ubuntu noble main" > /etc/apt/sources.list.d/ros2-testing.list - -# setup environment -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 -ENV ROS_DISTRO rolling +RUN curl -L -s -o /tmp/ros2-testing-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/1.1.0/ros2-testing-apt-source_1.1.0.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ + && apt-get update \ + && apt-get install /tmp/ros2-testing-apt-source.deb \ + && rm -f /tmp/ros2-testing-apt-source.deb # install bootstrap tools RUN apt-get update && apt-get install --no-install-recommends -y \ @@ -41,6 +31,11 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ python3-vcstool \ && rm -rf /var/lib/apt/lists/* +# setup environment +ENV ROS_DISTRO=rolling +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 + # bootstrap rosdep RUN rosdep init \ && rosdep update --rosdistro $ROS_DISTRO From 844fef7dbe6eb9f53b6ca3374997e13e29ff6755 Mon Sep 17 00:00:00 2001 From: Mikael Arguedas Date: Sat, 31 May 2025 20:29:17 +0200 Subject: [PATCH 6/9] [TO REVERT] testing image changes made by the template that show it's out of date Signed-off-by: Mikael Arguedas --- ros2/testing/testing/Dockerfile | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/ros2/testing/testing/Dockerfile b/ros2/testing/testing/Dockerfile index e2ba292af..1853035b2 100644 --- a/ros2/testing/testing/Dockerfile +++ b/ros2/testing/testing/Dockerfile @@ -1,4 +1,7 @@ -FROM ubuntu:noble-20250404 +# This is an auto generated Dockerfile for ros:testing +# generated from docker_images_ros2/testing/create_ros_image.Dockerfile.em +ARG FROM_IMAGE=ubuntu:noble +FROM $FROM_IMAGE # setup timezone RUN echo 'Etc/UTC' > /etc/timezone && \ @@ -48,12 +51,7 @@ RUN colcon mixin add default \ https://raw.githubusercontent.com/colcon/colcon-metadata-repository/master/index.yaml && \ colcon metadata update -# install environment file for sourcing environment in entrypoint -RUN apt-get update && apt-get install --no-install-recommends -y \ - ros-rolling-ros-environment \ - && rm -rf /var/lib/apt/lists/* # setup entrypoint COPY ./ros_entrypoint.sh / - ENTRYPOINT ["/ros_entrypoint.sh"] CMD ["bash"] From 17baa8bb0eb9300df3274a36fc4ccff337ca0d17 Mon Sep 17 00:00:00 2001 From: Mikael Arguedas Date: Sat, 31 May 2025 20:30:22 +0200 Subject: [PATCH 7/9] commit devel image changes Signed-off-by: Mikael Arguedas --- ros2/source/devel/Dockerfile | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/ros2/source/devel/Dockerfile b/ros2/source/devel/Dockerfile index 587c39545..6fc4d788d 100644 --- a/ros2/source/devel/Dockerfile +++ b/ros2/source/devel/Dockerfile @@ -10,6 +10,8 @@ RUN echo 'Etc/UTC' > /etc/timezone && \ # install packages RUN apt-get update && apt-get install -q -y --no-install-recommends \ bash-completion \ + ca-certificates \ + curl \ dirmngr \ gnupg2 \ python3-argcomplete \ @@ -31,22 +33,15 @@ RUN apt-get update && apt-get install -q -y --no-install-recommends \ python3-pytest-timeout \ && rm -rf /var/lib/apt/lists/* -# setup keys -RUN set -eux; \ - key='C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654'; \ - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \ - mkdir -p /usr/share/keyrings; \ - gpg --batch --export "$key" > /usr/share/keyrings/ros2-latest-archive-keyring.gpg; \ - gpgconf --kill all; \ - rm -rf "$GNUPGHOME" -# setup sources.list -RUN echo "deb [ signed-by=/usr/share/keyrings/ros2-latest-archive-keyring.gpg ] http://packages.ros.org/ros2/ubuntu noble main" > /etc/apt/sources.list.d/ros2-latest.list +RUN curl -L -s -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/1.1.0/ros2-apt-source_1.1.0.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ + && apt-get update \ + && apt-get install /tmp/ros2-apt-source.deb \ + && rm -f /tmp/ros2-apt-source.deb # setup environment -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 # install bootstrap tools RUN apt-get update && apt-get install --no-install-recommends -y \ @@ -77,7 +72,7 @@ RUN colcon mixin add default \ colcon metadata update # clone source -ENV ROS2_WS /opt/ros2_ws +ENV ROS2_WS=/opt/ros2_ws RUN mkdir -p $ROS2_WS/src WORKDIR $ROS2_WS From a972dce31ddc4a6ca9aee3990873e44669e9ea1b Mon Sep 17 00:00:00 2001 From: Mikael Arguedas Date: Sat, 31 May 2025 20:30:53 +0200 Subject: [PATCH 8/9] [TO REVERT] commit source folder changes that chow how out of date template and images are Signed-off-by: Mikael Arguedas --- ros2/source/devel/Dockerfile | 7 ++++--- ros2/source/source/Dockerfile | 25 +++++++++++++------------ 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/ros2/source/devel/Dockerfile b/ros2/source/devel/Dockerfile index 6fc4d788d..43108ba8f 100644 --- a/ros2/source/devel/Dockerfile +++ b/ros2/source/devel/Dockerfile @@ -1,4 +1,7 @@ -FROM ubuntu:noble-20250404 +# This is an auto generated Dockerfile for ros2:devel +# generated from docker_images_ros2/devel/create_ros_image.Dockerfile.em +ARG FROM_IMAGE=ubuntu:noble +FROM $FROM_IMAGE # setup timezone RUN echo 'Etc/UTC' > /etc/timezone && \ @@ -24,7 +27,6 @@ RUN apt-get update && apt-get install -q -y --no-install-recommends \ python3-flake8-docstrings \ python3-flake8-import-order \ python3-flake8-quotes \ - python3-pip \ python3-pytest-cov \ python3-pytest-mock \ python3-pytest-repeat \ @@ -50,7 +52,6 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ python3-colcon-common-extensions \ python3-colcon-mixin \ python3-rosdep \ - python3-setuptools \ python3-vcstool \ && rm -rf /var/lib/apt/lists/* diff --git a/ros2/source/source/Dockerfile b/ros2/source/source/Dockerfile index 9d21c81b7..5c6027415 100644 --- a/ros2/source/source/Dockerfile +++ b/ros2/source/source/Dockerfile @@ -4,26 +4,28 @@ ARG FROM_IMAGE=osrf/ros2:devel FROM $FROM_IMAGE -# set environment -ARG ROS_DISTRO=rolling +# install packages +RUN apt-get update && apt-get install -q -y --no-install-recommends \ + libasio-dev \ + libssl-dev \ + libtinyxml2-dev \ + wget \ + && rm -rf /var/lib/apt/lists/* +ARG ROS_DISTRO=humble ENV ROS_DISTRO=$ROS_DISTRO ENV ROS_VERSION=2 \ ROS_PYTHON_VERSION=3 -# clone source -ARG ROS2_BRANCH=$ROS_DISTRO -ARG ROS2_REPO=https://github.com/ros2/ros2.git -RUN git clone $ROS2_REPO -b $ROS2_BRANCH \ - && vcs import src < ros2/ros2.repos +WORKDIR $ROS2_WS + +RUN wget https://raw.githubusercontent.com/ros2/ros2/$ROS_DISTRO-release/ros2.repos \ + && vcs import src < ros2.repos # install dependencies RUN apt-get update && rosdep install -y \ --from-paths src \ --ignore-src \ - --skip-keys " \ - fastcdr \ - rti-connext-dds-6.0.1 \ - urdfdom_headers" \ + --skip-keys "console_bridge fastcdr fastrtps libopensplice69 rti-connext-dds-6.0.1 urdfdom_headers" \ && rm -rf /var/lib/apt/lists/* # build source @@ -33,7 +35,6 @@ RUN colcon \ --mixin build-testing-on release \ --cmake-args --no-warn-unused-cli -# test build ARG RUN_TESTS ARG FAIL_ON_TEST_FAILURE RUN if [ ! -z "$RUN_TESTS" ]; then \ From 59e1dc03e47ff9a7a17f260fd2eb27a5d998ba0b Mon Sep 17 00:00:00 2001 From: Mikael Arguedas Date: Sat, 31 May 2025 20:42:12 +0200 Subject: [PATCH 9/9] manually update nightly image Signed-off-by: Mikael Arguedas --- ros2/nightly/nightly/Dockerfile | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/ros2/nightly/nightly/Dockerfile b/ros2/nightly/nightly/Dockerfile index 42bcbfbe7..5a7f210b2 100644 --- a/ros2/nightly/nightly/Dockerfile +++ b/ros2/nightly/nightly/Dockerfile @@ -12,7 +12,9 @@ RUN echo 'Etc/UTC' > /etc/timezone && \ # install packages RUN apt-get update && apt-get install -q -y --no-install-recommends \ bash-completion \ + ca-certificates \ cmake \ + curl \ dirmngr \ git \ gnupg2 \ @@ -37,18 +39,10 @@ RUN apt-get update && apt-get install -q -y --no-install-recommends \ wget \ && rm -rf /var/lib/apt/lists/* -# setup keys -RUN set -eux; \ - key='C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654'; \ - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \ - mkdir -p /usr/share/keyrings; \ - gpg --batch --export "$key" > /usr/share/keyrings/ros2-testing-archive-keyring.gpg; \ - gpgconf --kill all; \ - rm -rf "$GNUPGHOME" - -# setup sources.list -RUN echo "deb [ signed-by=/usr/share/keyrings/ros2-testing-archive-keyring.gpg ] http://packages.ros.org/ros2-testing/ubuntu noble main" > /etc/apt/sources.list.d/ros2-testing.list +RUN curl -L -s -o /tmp/ros2-testing-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/1.1.0/ros2-testing-apt-source_1.1.0.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" \ + && apt-get update \ + && apt-get install /tmp/ros2-testing-apt-source.deb \ + && rm -f /tmp/ros2-testing-apt-source.deb # install bootstrap tools RUN apt-get update && apt-get install --no-install-recommends -y \ @@ -61,10 +55,10 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ && rm -rf /var/lib/apt/lists/* # setup environment -ENV ROS_DISTRO rolling -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 -ENV ROSDISTRO_INDEX_URL https://raw.githubusercontent.com/osrf/docker_images/master/ros2/nightly/nightly/index-v4.yaml +ENV ROS_DISTRO=rolling +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 +ENV ROSDISTRO_INDEX_URL=https://raw.githubusercontent.com/osrf/docker_images/master/ros2/nightly/nightly/index-v4.yaml # This is a workaround for pytest not found causing builds to fail # Following RUN statements tests for regression of https://github.com/ros2/ros2/issues/722