Skip to content

Commit 1d51fa4

Browse files
Merge pull request #731 from osrf/target_noble
Migrate rolling images to ubuntu noble
2 parents 549130e + e7e6b33 commit 1d51fa4

File tree

11 files changed

+259
-15
lines changed

11 files changed

+259
-15
lines changed

.github/workflows/ros_ci.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ on:
66
paths:
77
- '.ci/**'
88
- '.github/workflows/ros_ci.yaml'
9-
- 'ros/rolling/**'
9+
# - 'ros/rolling/**'
1010
- 'ros/iron/**'
1111
- 'ros/humble/**'
1212
- 'ros/noetic/**'
1313
push:
1414
paths:
1515
- '.ci/**'
1616
- '.github/workflows/ros_ci.yaml'
17-
- 'ros/rolling/**'
17+
# - 'ros/rolling/**'
1818
- 'ros/iron/**'
1919
- 'ros/humble/**'
2020
- 'ros/noetic/**'
@@ -27,7 +27,7 @@ jobs:
2727
fail-fast: false
2828
matrix:
2929
env:
30-
- {HUB_REPO: ros, HUB_RELEASE: rolling, HUB_OS_NAME: ubuntu, HUB_OS_CODE_NAME: jammy}
30+
# - {HUB_REPO: ros, HUB_RELEASE: rolling, HUB_OS_NAME: ubuntu, HUB_OS_CODE_NAME: jammy}
3131
- {HUB_REPO: ros, HUB_RELEASE: iron, HUB_OS_NAME: ubuntu, HUB_OS_CODE_NAME: jammy}
3232
- {HUB_REPO: ros, HUB_RELEASE: humble, HUB_OS_NAME: ubuntu, HUB_OS_CODE_NAME: jammy}
3333
- {HUB_REPO: ros, HUB_RELEASE: noetic, HUB_OS_NAME: ubuntu, HUB_OS_CODE_NAME: focal}

ros/manifest.yaml

+1-2
Original file line numberDiff line numberDiff line change
@@ -603,8 +603,7 @@ release_names:
603603
os_names:
604604
ubuntu:
605605
os_code_names:
606-
jammy:
607-
rosdistro_name: noetic
606+
noble:
608607
<<: *DEFAULT_ROS2
609608
archs:
610609
- amd64

ros/rolling/ubuntu/noble/Makefile

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
all: help
2+
3+
help:
4+
@echo ""
5+
@echo "-- Help Menu"
6+
@echo ""
7+
@echo " 1. make build - build all images"
8+
@echo " 2. make pull - pull all images"
9+
@echo " 3. make clean - remove all images"
10+
@echo ""
11+
12+
build:
13+
@docker build --tag=ros:rolling-ros-core-noble ros-core/.
14+
@docker build --tag=ros:rolling-ros-base-noble ros-base/.
15+
@docker build --tag=ros:rolling-perception-noble perception/.
16+
# @docker build --tag=osrf/ros:rolling-simulation-noble simulation/.
17+
# @docker build --tag=osrf/ros:rolling-desktop-noble desktop/.
18+
# @docker build --tag=osrf/ros:rolling-desktop-full-noble desktop-full/.
19+
20+
pull:
21+
@docker pull ros:rolling-ros-core-noble
22+
@docker pull ros:rolling-ros-base-noble
23+
@docker pull ros:rolling-perception-noble
24+
# @docker pull osrf/ros:rolling-simulation-noble
25+
# @docker pull osrf/ros:rolling-desktop-noble
26+
# @docker pull osrf/ros:rolling-desktop-full-noble
27+
28+
clean:
29+
@docker rmi -f ros:rolling-ros-core-noble
30+
@docker rmi -f ros:rolling-ros-base-noble
31+
@docker rmi -f ros:rolling-perception-noble
32+
# @docker rmi -f osrf/ros:rolling-simulation-noble
33+
# @docker rmi -f osrf/ros:rolling-desktop-noble
34+
# @docker rmi -f osrf/ros:rolling-desktop-full-noble
35+
36+
ci_buildx:
37+
@docker buildx build --pull --push \
38+
--cache-from=type=registry,ref=osrf/ros:rolling-desktop-noble \
39+
--cache-to=type=inline \
40+
--tag=osrf/ros:rolling-desktop-noble \
41+
desktop/.
42+
@if [ "ubuntu" = "ubuntu" ]; then \
43+
docker pull \
44+
osrf/ros:rolling-desktop-noble; \
45+
docker tag \
46+
osrf/ros:rolling-desktop-noble \
47+
osrf/ros:rolling-desktop; \
48+
docker push \
49+
osrf/ros:rolling-desktop; \
50+
fi
51+
# @docker buildx build --pull --push \
52+
# --cache-from=type=registry,ref=osrf/ros:rolling-simulation-noble \
53+
# --cache-to=type=inline \
54+
# --tag=osrf/ros:rolling-simulation-noble \
55+
# simulation/.
56+
# @if [ "ubuntu" = "ubuntu" ]; then \
57+
# docker pull \
58+
# osrf/ros:rolling-simulation-noble; \
59+
# docker tag \
60+
# osrf/ros:rolling-simulation-noble \
61+
# osrf/ros:rolling-simulation; \
62+
# docker push \
63+
# osrf/ros:rolling-simulation; \
64+
# fi
65+
# @docker buildx build --pull --push \
66+
# --cache-from=type=registry,ref=osrf/ros:rolling-desktop-full-noble \
67+
# --cache-to=type=inline \
68+
# --tag=osrf/ros:rolling-desktop-full-noble \
69+
# desktop-full/.
70+
# @if [ "ubuntu" = "ubuntu" ]; then \
71+
# docker pull \
72+
# osrf/ros:rolling-desktop-full-noble; \
73+
# docker tag \
74+
# osrf/ros:rolling-desktop-full-noble \
75+
# osrf/ros:rolling-desktop-full; \
76+
# docker push \
77+
# osrf/ros:rolling-desktop-full; \
78+
# fi
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# This is an auto generated Dockerfile for ros:desktop
2+
# generated from docker_images_ros2/create_ros_image.Dockerfile.em
3+
FROM ros:rolling-ros-base-noble
4+
5+
# install ros2 packages
6+
RUN apt-get update && apt-get install -y --no-install-recommends \
7+
ros-rolling-desktop=0.10.0-3* \
8+
&& rm -rf /var/lib/apt/lists/*
9+
+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
%YAML 1.1
2+
# ROS2 Dockerfile database
3+
---
4+
images:
5+
ros-core:
6+
base_image: @(os_name):@(os_code_name)
7+
maintainer_name: @(maintainer_name)
8+
template_name: docker_images_ros2/create_ros_core_image.Dockerfile.em
9+
entrypoint_name: docker_images_ros2/ros_entrypoint.sh
10+
template_packages:
11+
- docker_templates
12+
ros2_packages:
13+
- ros-core
14+
ros-base:
15+
base_image: @(user_name):@(ros2distro_name)-ros-core-@(os_code_name)
16+
maintainer_name: @(maintainer_name)
17+
template_name: docker_images_ros2/create_ros_image.Dockerfile.em
18+
template_packages:
19+
- docker_templates
20+
ros2_packages:
21+
- ros-base
22+
bootstrap_ros_tools:
23+
perception:
24+
base_image: @(user_name):@(ros2distro_name)-ros-base-@(os_code_name)
25+
maintainer_name: @(maintainer_name)
26+
template_name: docker_images_ros2/create_ros_image.Dockerfile.em
27+
template_packages:
28+
- docker_templates
29+
ros2_packages:
30+
- perception
31+
# simulation:
32+
# base_image: @(user_name):@(ros2distro_name)-ros-base-@(os_code_name)
33+
# maintainer_name: @(maintainer_name)
34+
# template_name: docker_images_ros2/create_ros_image.Dockerfile.em
35+
# template_packages:
36+
# - docker_templates
37+
# ros2_packages:
38+
# - simulation
39+
desktop:
40+
base_image: @(user_name):@(ros2distro_name)-ros-base-@(os_code_name)
41+
maintainer_name: @(maintainer_name)
42+
template_name: docker_images_ros2/create_ros_image.Dockerfile.em
43+
template_packages:
44+
- docker_templates
45+
ros2_packages:
46+
- desktop
47+
# desktop-full:
48+
# base_image: osrf/@(user_name):@(ros2distro_name)-desktop-@(os_code_name)
49+
# maintainer_name: @(maintainer_name)
50+
# template_name: docker_images_ros2/create_ros_image.Dockerfile.em
51+
# template_packages:
52+
# - docker_templates
53+
# ros2_packages:
54+
# - desktop-full
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# This is an auto generated Dockerfile for ros:perception
2+
# generated from docker_images_ros2/create_ros_image.Dockerfile.em
3+
FROM ros:rolling-ros-base-noble
4+
5+
# install ros2 packages
6+
RUN apt-get update && apt-get install -y --no-install-recommends \
7+
ros-rolling-perception=0.10.0-3* \
8+
&& rm -rf /var/lib/apt/lists/*
9+
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
%YAML 1.1
2+
# ROS2 Dockerfile database
3+
---
4+
platform:
5+
os_name: ubuntu
6+
os_code_name: noble
7+
ros2distro_name: rolling
8+
user_name: ros
9+
maintainer_name:
10+
arch: amd64
11+
type: distribution
12+
version:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# This is an auto generated Dockerfile for ros:ros-base
2+
# generated from docker_images_ros2/create_ros_image.Dockerfile.em
3+
FROM ros:rolling-ros-core-noble
4+
5+
# install bootstrap tools
6+
RUN apt-get update && apt-get install --no-install-recommends -y \
7+
build-essential \
8+
git \
9+
python3-colcon-common-extensions \
10+
python3-colcon-mixin \
11+
python3-rosdep \
12+
python3-vcstool \
13+
&& rm -rf /var/lib/apt/lists/*
14+
15+
# bootstrap rosdep
16+
RUN rosdep init && \
17+
rosdep update --rosdistro $ROS_DISTRO
18+
19+
# setup colcon mixin and metadata
20+
RUN colcon mixin add default \
21+
https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml && \
22+
colcon mixin update && \
23+
colcon metadata add default \
24+
https://raw.githubusercontent.com/colcon/colcon-metadata-repository/master/index.yaml && \
25+
colcon metadata update
26+
27+
# install ros2 packages
28+
RUN apt-get update && apt-get install -y --no-install-recommends \
29+
ros-rolling-ros-base=0.10.0-3* \
30+
&& rm -rf /var/lib/apt/lists/*
31+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# This is an auto generated Dockerfile for ros:ros-core
2+
# generated from docker_images_ros2/create_ros_core_image.Dockerfile.em
3+
FROM ubuntu:noble
4+
5+
# setup timezone
6+
RUN echo 'Etc/UTC' > /etc/timezone && \
7+
ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
8+
apt-get update && \
9+
apt-get install -q -y --no-install-recommends tzdata && \
10+
rm -rf /var/lib/apt/lists/*
11+
12+
# install packages
13+
RUN apt-get update && apt-get install -q -y --no-install-recommends \
14+
dirmngr \
15+
gnupg2 \
16+
&& rm -rf /var/lib/apt/lists/*
17+
18+
# setup keys
19+
RUN set -eux; \
20+
key='C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654'; \
21+
export GNUPGHOME="$(mktemp -d)"; \
22+
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
23+
mkdir -p /usr/share/keyrings; \
24+
gpg --batch --export "$key" > /usr/share/keyrings/ros2-latest-archive-keyring.gpg; \
25+
gpgconf --kill all; \
26+
rm -rf "$GNUPGHOME"
27+
28+
# setup sources.list
29+
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
30+
31+
# setup environment
32+
ENV LANG C.UTF-8
33+
ENV LC_ALL C.UTF-8
34+
35+
ENV ROS_DISTRO rolling
36+
37+
# install ros2 packages
38+
RUN apt-get update && apt-get install -y --no-install-recommends \
39+
ros-rolling-ros-core=0.10.0-3* \
40+
&& rm -rf /var/lib/apt/lists/*
41+
42+
# setup entrypoint
43+
COPY ./ros_entrypoint.sh /
44+
45+
ENTRYPOINT ["/ros_entrypoint.sh"]
46+
CMD ["bash"]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# setup ros2 environment
5+
source "/opt/ros/$ROS_DISTRO/setup.bash" --
6+
exec "$@"

ros/ros

+10-10
Original file line numberDiff line numberDiff line change
@@ -76,20 +76,20 @@ Directory: ros/iron/ubuntu/jammy/perception
7676
# Release: rolling
7777

7878
########################################
79-
# Distro: ubuntu:jammy
79+
# Distro: ubuntu:noble
8080

81-
Tags: rolling-ros-core, rolling-ros-core-jammy
81+
Tags: rolling-ros-core, rolling-ros-core-noble
8282
Architectures: amd64, arm64v8
83-
GitCommit: 27cc0b68263bbbb10bb58dd814efc0a6b0a01ec7
84-
Directory: ros/rolling/ubuntu/jammy/ros-core
83+
GitCommit: 026069e4a10a7e6d390db2bb0ce9d3f704e93919
84+
Directory: ros/rolling/ubuntu/noble/ros-core
8585

86-
Tags: rolling-ros-base, rolling-ros-base-jammy, rolling
86+
Tags: rolling-ros-base, rolling-ros-base-noble, rolling
8787
Architectures: amd64, arm64v8
88-
GitCommit: 73c1bf4c30e97d5d3d7c2aaddc8137cae2411409
89-
Directory: ros/rolling/ubuntu/jammy/ros-base
88+
GitCommit: 026069e4a10a7e6d390db2bb0ce9d3f704e93919
89+
Directory: ros/rolling/ubuntu/noble/ros-base
9090

91-
Tags: rolling-perception, rolling-perception-jammy
91+
Tags: rolling-perception, rolling-perception-noble
9292
Architectures: amd64, arm64v8
93-
GitCommit: 73c1bf4c30e97d5d3d7c2aaddc8137cae2411409
94-
Directory: ros/rolling/ubuntu/jammy/perception
93+
GitCommit: 026069e4a10a7e6d390db2bb0ce9d3f704e93919
94+
Directory: ros/rolling/ubuntu/noble/perception
9595

0 commit comments

Comments
 (0)