diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6c98029..0824857 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -83,6 +83,9 @@ jobs:
pulumi/pulumi-base: 'pulumi/pulumi-base/**'
pulumi/pulumi-python: 'pulumi/pulumi-python/**'
redis/7.2/jammy: 'redis/7.2/jammy/**'
+ ros/humble/ubuntu/jammy: 'ros/humble/ubuntu/jammy/**'
+ ros/jazzy/ubuntu/noble: 'ros/jazzy/ubuntu/noble/**'
+ ros/ready/ubuntu: 'ros/ready/ubuntu/**'
ruby/3.2/jammy: 'ruby/3.2/jammy/**'
ruby/3.2/noble: 'ruby/3.2/noble/**'
ruby/3.2/slim-jammy: 'ruby/3.2/slim-jammy/**'
diff --git a/README.md b/README.md
index da9aa37..f7ea24f 100644
--- a/README.md
+++ b/README.md
@@ -38,7 +38,7 @@ The images are pubished to https://hub.docker.com/u/polymathrobotics
| [pulumi-base](https://hub.docker.com/r/polymathrobotics/pulumi-base)
[pulumi-python](https://hub.docker.com/r/polymathrobotics/pulumi-python) | Pulumi Infrastructure as Code CLI | [pulumi-base](https://github.com/polymathrobotics/oci/tree/main/pulumi/pulumi-base)
[pulumi-python](https://github.com/polymathrobotics/oci/tree/main/pulumi/pulumi-python) |
| [python](https://hub.docker.com/r/polymathrobotics/python) | The Python programming language | [python](https://github.com/polymathrobotics/oci/tree/main/python) |
| [redis](https://hub.docker.com/r/polymathrobotics/redis) | Redis is an open source key-value store that functions as a data structure server. | [redis](https://github.com/polymathrobotics/oci/tree/main/redis) |
-| [ros](https://hub.docker.com/r/polymathrobotics/ros) | The Robot Operating System | [humble-jammy](https://github.com/polymathrobotics/oci/tree/main/ros/humble/ubuntu/jammy)
[iron-jammy](https://github.com/polymathrobotics/oci/tree/main/ros/iron/ubuntu/jammy)
[jazzy-noble](https://github.com/polymathrobotics/oci/tree/main/ros/jazzy/ubuntu/noble)
[noetic-focal](https://github.com/polymathrobotics/oci/tree/main/ros/noetic/ubuntu/focal)
[rolling-jammy](https://github.com/polymathrobotics/oci/tree/main/ros/rolling/ubuntu/jammy) |
+| [ros](https://hub.docker.com/r/polymathrobotics/ros) | The Robot Operating System | [humble-jammy](https://github.com/polymathrobotics/oci/tree/main/ros/humble/ubuntu/jammy)
[jazzy-noble](https://github.com/polymathrobotics/oci/tree/main/ros/jazzy/ubuntu/noble)
[rolling-jammy](https://github.com/polymathrobotics/oci/tree/main/ros/rolling/ubuntu/jammy) |
| [ruby](https://hub.docker.com/r/polymathrobotics/ruby) | Ruby is a dynamic, reflective, object-oriented, general-purpose, open-source programming language | [ruby](https://github.com/polymathrobotics/oci/tree/main/ruby) |
| [shellcheck](https://hub.docker.com/r/polymathrobotics/shellcheck) | Static analysis tool for shell scripts | [shellcheck](https://github.com/polymathrobotics/oci/tree/main/shellcheck) |
| [smokeping](https://hub.docker.com/r/polymathrobotics/smokeping) | Smokeping network latency grapher | [smokeping](https://github.com/polymathrobotics/oci/tree/main/smokeping) |
diff --git a/ros/humble/ubuntu/jammy/Containerfile b/ros/humble/ubuntu/jammy/Containerfile
index d231f56..8427aef 100644
--- a/ros/humble/ubuntu/jammy/Containerfile
+++ b/ros/humble/ubuntu/jammy/Containerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:1
-ARG BASE_IMAGE=docker.io/ubuntu:jammy-20250415.1
+ARG BASE_IMAGE=docker.io/ubuntu:jammy-20260217
# hadolint ignore=DL3006
FROM ${BASE_IMAGE} AS base
diff --git a/ros/iron/ubuntu/jammy/Containerfile b/ros/iron/ubuntu/jammy/Containerfile
deleted file mode 100644
index da9f175..0000000
--- a/ros/iron/ubuntu/jammy/Containerfile
+++ /dev/null
@@ -1,118 +0,0 @@
-# syntax=docker/dockerfile:1
-ARG BASE_IMAGE=docker.io/ubuntu:jammy-20250415.1
-# hadolint ignore=DL3006
-FROM ${BASE_IMAGE} AS base
-
-FROM base AS download
-
-ARG RAW_GITHUBUSERCONTENT_BASE_URL
-
-# download gpg key
-RUN < /etc/timezone && \
- ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
- apt-get update && \
- apt-get install -q -y --no-install-recommends tzdata && \
- rm -rf /var/lib/apt/lists/*
-
-# install packages
-RUN apt-get update && apt-get install -q -y --no-install-recommends \
- dirmngr \
- gnupg2 \
- && rm -rf /var/lib/apt/lists/*
-
-# setup sources.list
-RUN echo "deb [ signed-by=/usr/share/keyrings/ros2-latest-archive-keyring.gpg ] ${ROS_PACKAGES_URI} jammy main" > /etc/apt/sources.list.d/ros2-latest.list
-
-# setup environment
-ENV LANG=C.UTF-8
-ENV LC_ALL=C.UTF-8
-
-ENV ROSDISTRO_PKGS_SYNC_DATE=$ROSDISTRO_PKGS_SYNC_DATE
-ENV ROS_DISTRO=iron
-
-# install ros2 packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-iron-ros-core=0.10.0-3* \
- && rm -rf /var/lib/apt/lists/*
-
-# setup entrypoint
-COPY ./ros_entrypoint.sh /
-
-ENTRYPOINT ["/ros_entrypoint.sh"]
-CMD ["bash"]
-
-FROM ros-core AS ros-base
-
-ARG RAW_GITHUBUSERCONTENT_BASE_URL
-
-# install bootstrap tools
-RUN apt-get update && apt-get install --no-install-recommends -y \
- build-essential \
- git \
- python3-colcon-common-extensions \
- python3-colcon-mixin \
- python3-rosdep \
- python3-vcstool \
- && rm -rf /var/lib/apt/lists/*
-
-# bootstrap rosdep
-RUN rosdep init && \
- rosdep update --rosdistro "${ROS_DISTRO}"
-
-# setup colcon mixin and metadata
-RUN colcon mixin add default \
- "${RAW_GITHUBUSERCONTENT_BASE_URL}/colcon/colcon-mixin-repository/master/index.yaml" && \
- colcon mixin update && \
- colcon metadata add default \
- "${RAW_GITHUBUSERCONTENT_BASE_URL}/colcon/colcon-metadata-repository/master/index.yaml" && \
- colcon metadata update
-
-# install ros2 packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-iron-ros-base=0.10.0-3* \
- && rm -rf /var/lib/apt/lists/*
-
-FROM ros-base AS perception
-
-# install ros2 packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-iron-perception=0.10.0-3* \
- && rm -rf /var/lib/apt/lists/*
-
-FROM ros-base AS simulation
-
-# install ros2 packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-iron-simulation=0.10.0-3* \
- && rm -rf /var/lib/apt/lists/*
-
-FROM ros-base AS desktop
-
-# install ros2 packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-iron-desktop=0.10.0-3* \
- && rm -rf /var/lib/apt/lists/*
-
-FROM desktop AS desktop-full
-
-# install ros2 packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-iron-desktop-full=0.10.0-3* \
- && rm -rf /var/lib/apt/lists/*
diff --git a/ros/iron/ubuntu/jammy/docker-bake.hcl b/ros/iron/ubuntu/jammy/docker-bake.hcl
deleted file mode 100644
index b362a7c..0000000
--- a/ros/iron/ubuntu/jammy/docker-bake.hcl
+++ /dev/null
@@ -1,55 +0,0 @@
-variable "TAG_PREFIX" {
- default = "docker.io/polymathrobotics/ros"
-}
-
-# There's no darwin-based Docker, so if we're running on macOS, change the platform to linux
-variable "LOCAL_PLATFORM" {
- default = regex_replace("${BAKE_LOCAL_PLATFORM}", "^(darwin)", "linux")
-}
-
-variable "ROS_PACKAGE" {
- default = ["ros-core", "ros-base", "perception", "simulation", "desktop", "desktop-full"]
-}
-
-target "_common" {
- args = {
- ROS_PACKAGES_URI = "http://packages.ros.org/ros2/ubuntu"
- RAW_GITHUBUSERCONTENT_BASE_URL = "https://raw.githubusercontent.com"
- ROSDISTRO_PKGS_SYNC_DATE = "${formatdate("YYYY-MM-DD", timestamp())}"
- }
- dockerfile = "Containerfile"
- labels = {
- "org.opencontainers.image.source" = "https://github.com/polymathrobotics/oci/blob/main/ros/iron/ubuntu/jammy/Containerfile"
- "org.opencontainers.image.licenses" = "Apache-2.0"
- "org.opencontainers.image.description" = "The Robot Operating System (ROS) is an open source project for building robot applications."
- "org.opencontainers.image.title" = "${TAG_PREFIX}"
- "org.opencontainers.image.created" = "${timestamp()}"
- "dev.polymathrobotics.image.readme-filepath" = "ros/README.md"
- }
-}
-
-target "local" {
- inherits = ["_common"]
- name = "local-${ros_package}"
- matrix = {
- ros_package = ROS_PACKAGE
- }
- target = ros_package
- tags = [
- "${TAG_PREFIX}:iron-${ros_package}-jammy"
- ]
- platforms = ["${LOCAL_PLATFORM}"]
-}
-
-target "default" {
- inherits = ["_common"]
- name = "default-${ros_package}"
- matrix = {
- ros_package = ROS_PACKAGE
- }
- target = ros_package
- tags = [
- "${TAG_PREFIX}:iron-${ros_package}-jammy"
- ]
- platforms = ["linux/amd64", "linux/arm64/v8"]
-}
diff --git a/ros/iron/ubuntu/jammy/ros_entrypoint.sh b/ros/iron/ubuntu/jammy/ros_entrypoint.sh
deleted file mode 100755
index 28bc65a..0000000
--- a/ros/iron/ubuntu/jammy/ros_entrypoint.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-set -e
-
-# setup ros2 environment
-source "/opt/ros/$ROS_DISTRO/setup.bash" --
-exec "$@"
diff --git a/ros/iron/ubuntu/jammy/test/controls/ros_iron.rb b/ros/iron/ubuntu/jammy/test/controls/ros_iron.rb
deleted file mode 100644
index df2422b..0000000
--- a/ros/iron/ubuntu/jammy/test/controls/ros_iron.rb
+++ /dev/null
@@ -1,100 +0,0 @@
-describe os_env('ROS_DISTRO') do
- its('content') { should eq 'iron' }
-end
-
-describe os_env('LANG') do
- its('content') { should eq 'C.UTF-8' }
-end
-
-describe os_env('ROSDISTRO_PKGS_SYNC_DATE') do
- its('content') { should match /^\d{4}-\d{2}-\d{2}$/ }
-end
-
-describe file('/usr/share/keyrings/ros2-latest-archive-keyring.gpg') do
- it { should exist }
-end
-
-describe file('/ros_entrypoint.sh') do
- it { should exist }
-end
-
-describe command("su --login --command \"source /opt/ros/$ROS_DISTRO/setup.bash && ros2 -h\"") do
- its('exit_status') { should cmp 0 }
- its('stdout') { should match(/usage: ros2/) }
-end
-
-describe file('/ros_entrypoint.sh') do
- it { should exist }
- its('content') { should match %r{source "/opt/ros/\$ROS_DISTRO/setup\.bash"} }
-end
-
-# docker.io/polymathrobotics/ros:iron-ros-core-jammy
-control 'ros-core' do
- only_if('ros-core') do
- input('test_container_image').include?('ros:iron-ros-core-jammy')
- end
-
- %w(
- colcon
- rosdep
- ).each do |cmd|
- describe command(cmd) do
- it { should_not exist }
- end
- end
-end
-
-# docker.io/polymathrobotics/ros:iron-ros-base-jammy
-control 'ros-base' do
- only_if('ros-base') do
- input('test_container_image').include?('ros:iron-ros-base-jammy')
- end
-
- describe command('colcon') do
- it { should exist }
- end
-end
-
-# docker.io/polymathrobotics/ros:iron-perception-jammy
-control 'perception' do
- only_if('perception') do
- input('test_container_image').include?('ros:iron-perception-jammy')
- end
-
- describe command('colcon') do
- it { should exist }
- end
-end
-
-# docker.io/polymathrobotics/ros:iron-simulation-jammy
-control 'simulation' do
- only_if('simulation') do
- input('test_container_image').include?('ros:iron-simulation-jammy')
- end
-
- describe command('colcon') do
- it { should exist }
- end
-end
-
-# docker.io/polymathrobotics/ros:iron-desktop-jammy
-control 'desktop' do
- only_if('desktop') do
- input('test_container_image').include?('ros:iron-desktop-jammy')
- end
-
- describe command('colcon') do
- it { should exist }
- end
-end
-
-# docker.io/polymathrobotics/ros:iron-desktop-full-jammy
-control 'desktop-full' do
- only_if('desktop-full') do
- input('test_container_image').include?('ros:iron-desktop-full-jammy')
- end
-
- describe command('colcon') do
- it { should exist }
- end
-end
diff --git a/ros/jazzy/ubuntu/noble/Containerfile b/ros/jazzy/ubuntu/noble/Containerfile
index 73a1f2a..52b1b35 100644
--- a/ros/jazzy/ubuntu/noble/Containerfile
+++ b/ros/jazzy/ubuntu/noble/Containerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:1
-ARG BASE_IMAGE=docker.io/ubuntu:noble-20250415.1
+ARG BASE_IMAGE=docker.io/ubuntu:noble-20260217
# hadolint ignore=DL3006
FROM ${BASE_IMAGE} AS base
diff --git a/ros/noetic/ubuntu/focal/Containerfile b/ros/noetic/ubuntu/focal/Containerfile
deleted file mode 100644
index 0afd89e..0000000
--- a/ros/noetic/ubuntu/focal/Containerfile
+++ /dev/null
@@ -1,107 +0,0 @@
-# syntax=docker/dockerfile:1
-ARG BASE_IMAGE=docker.io/ubuntu:focal-20250404
-# hadolint ignore=DL3006
-FROM ${BASE_IMAGE} AS base
-
-FROM base AS download
-
-ARG RAW_GITHUBUSERCONTENT_BASE_URL
-
-# download gpg key
-RUN < /etc/timezone && \
- ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
- apt-get update && \
- apt-get install -q -y --no-install-recommends tzdata && \
- rm -rf /var/lib/apt/lists/*
-
-# install packages
-RUN apt-get update && apt-get install -q -y --no-install-recommends \
- dirmngr \
- gnupg2 \
- && rm -rf /var/lib/apt/lists/*
-
-# setup sources.list
-RUN echo "deb [ signed-by=/usr/share/keyrings/ros1-latest-archive-keyring.gpg ] ${ROS_PACKAGES_URI} focal main" > /etc/apt/sources.list.d/ros1-latest.list
-
-# setup environment
-ENV LANG=C.UTF-8
-ENV LC_ALL=C.UTF-8
-
-ENV ROSDISTRO_PKGS_SYNC_DATE=$ROSDISTRO_PKGS_SYNC_DATE
-ENV ROS_DISTRO=noetic
-
-# install ros packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-noetic-ros-core=1.5.0-1* \
- && rm -rf /var/lib/apt/lists/*
-
-# setup entrypoint
-COPY ./ros_entrypoint.sh /
-
-ENTRYPOINT ["/ros_entrypoint.sh"]
-CMD ["bash"]
-
-FROM ros-core AS ros-base
-
-# install bootstrap tools
-RUN apt-get update && apt-get install --no-install-recommends -y \
- build-essential \
- python3-rosdep \
- python3-rosinstall \
- python3-vcstools \
- && rm -rf /var/lib/apt/lists/*
-
-# bootstrap rosdep
-RUN rosdep init && \
- rosdep update --rosdistro "${ROS_DISTRO}"
-
-# install ros packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-noetic-ros-base=1.5.0-1* \
- && rm -rf /var/lib/apt/lists/*
-
-
-FROM ros-base AS robot
-
-# install ros packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-noetic-robot=1.5.0-1* \
- && rm -rf /var/lib/apt/lists/*
-
-FROM ros-base AS perception
-
-# install ros packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-noetic-perception=1.5.0-1* \
- && rm -rf /var/lib/apt/lists/*
-
-FROM robot AS desktop
-
-# install ros packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-noetic-desktop=1.5.0-1* \
- && rm -rf /var/lib/apt/lists/*
-
-FROM desktop AS desktop-full
-
-# install ros packages
-RUN apt-get update && apt-get install -y --no-install-recommends \
- ros-noetic-desktop-full=1.5.0-1* \
- && rm -rf /var/lib/apt/lists/*
diff --git a/ros/noetic/ubuntu/focal/docker-bake.hcl b/ros/noetic/ubuntu/focal/docker-bake.hcl
deleted file mode 100644
index 04fa881..0000000
--- a/ros/noetic/ubuntu/focal/docker-bake.hcl
+++ /dev/null
@@ -1,55 +0,0 @@
-variable "TAG_PREFIX" {
- default = "docker.io/polymathrobotics/ros"
-}
-
-# There's no darwin-based Docker, so if we're running on macOS, change the platform to linux
-variable "LOCAL_PLATFORM" {
- default = regex_replace("${BAKE_LOCAL_PLATFORM}", "^(darwin)", "linux")
-}
-
-variable "ROS_PACKAGE" {
- default = ["ros-core", "ros-base", "perception", "desktop", "desktop-full"]
-}
-
-target "_common" {
- args = {
- ROS_PACKAGES_URI = "http://packages.ros.org/ros/ubuntu"
- RAW_GITHUBUSERCONTENT_BASE_URL = "https://raw.githubusercontent.com"
- ROSDISTRO_PKGS_SYNC_DATE = "${formatdate("YYYY-MM-DD", timestamp())}"
- }
- dockerfile = "Containerfile"
- labels = {
- "org.opencontainers.image.source" = "https://github.com/polymathrobotics/oci/blob/main/ros/noetic/ubuntu/focal/Containerfile"
- "org.opencontainers.image.licenses" = "Apache-2.0"
- "org.opencontainers.image.description" = "The Robot Operating System (ROS) is an open source project for building robot applications."
- "org.opencontainers.image.title" = "${TAG_PREFIX}"
- "org.opencontainers.image.created" = "${timestamp()}"
- "dev.polymathrobotics.image.readme-filepath" = "ros/README.md"
- }
-}
-
-target "local" {
- inherits = ["_common"]
- name = "local-${ros_package}"
- matrix = {
- ros_package = ROS_PACKAGE
- }
- target = ros_package
- tags = [
- "${TAG_PREFIX}:noetic-${ros_package}-focal"
- ]
- platforms = ["${LOCAL_PLATFORM}"]
-}
-
-target "default" {
- inherits = ["_common"]
- name = "default-${ros_package}"
- matrix = {
- ros_package = ROS_PACKAGE
- }
- target = ros_package
- tags = [
- "${TAG_PREFIX}:noetic-${ros_package}-focal"
- ]
- platforms = ["linux/amd64", "linux/arm64/v8"]
-}
diff --git a/ros/noetic/ubuntu/focal/ros_entrypoint.sh b/ros/noetic/ubuntu/focal/ros_entrypoint.sh
deleted file mode 100755
index 6339274..0000000
--- a/ros/noetic/ubuntu/focal/ros_entrypoint.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-set -e
-
-# setup ros environment
-source "/opt/ros/$ROS_DISTRO/setup.bash" --
-exec "$@"
diff --git a/ros/noetic/ubuntu/focal/test/controls/ros_noetic.rb b/ros/noetic/ubuntu/focal/test/controls/ros_noetic.rb
deleted file mode 100644
index cb0c8b5..0000000
--- a/ros/noetic/ubuntu/focal/test/controls/ros_noetic.rb
+++ /dev/null
@@ -1,89 +0,0 @@
-describe os_env('ROS_DISTRO') do
- its('content') { should eq 'noetic' }
-end
-
-describe os_env('LANG') do
- its('content') { should eq 'C.UTF-8' }
-end
-
-describe os_env('ROSDISTRO_PKGS_SYNC_DATE') do
- its('content') { should match /^\d{4}-\d{2}-\d{2}$/ }
-end
-
-describe file('/usr/share/keyrings/ros1-latest-archive-keyring.gpg') do
- it { should exist }
-end
-
-describe file('/ros_entrypoint.sh') do
- it { should exist }
-end
-
-describe command("su --login --command \"source /opt/ros/$ROS_DISTRO/setup.bash && rosrun -h\"") do
- its('exit_status') { should cmp 0 }
- its('stdout') { should match(/Usage: rosrun/) }
-end
-
-describe file('/ros_entrypoint.sh') do
- it { should exist }
- its('content') { should match %r{source "/opt/ros/\$ROS_DISTRO/setup\.bash"} }
-end
-
-# docker.io/polymathrobotics/ros:noetic-ros-core-jammy
-control 'ros-core' do
- only_if('ros-core') do
- input('test_container_image').include?('ros:noetic-ros-core-jammy')
- end
-
- %w(
- colcon
- rosdep
- ).each do |cmd|
- describe command(cmd) do
- it { should_not exist }
- end
- end
-end
-
-# docker.io/polymathrobotics/ros:noetic-ros-base-jammy
-control 'ros-base' do
- only_if('ros-base') do
- input('test_container_image').include?('ros:noetic-ros-base-jammy')
- end
-
- describe command('colcon') do
- it { should exist }
- end
-end
-
-# docker.io/polymathrobotics/ros:noetic-perception-jammy
-control 'perception' do
- only_if('perception') do
- input('test_container_image').include?('ros:noetic-perception-jammy')
- end
-
- describe command('colcon') do
- it { should exist }
- end
-end
-
-# docker.io/polymathrobotics/ros:noetic-desktop-jammy
-control 'desktop' do
- only_if('desktop') do
- input('test_container_image').include?('ros:noetic-desktop-jammy')
- end
-
- describe command('colcon') do
- it { should exist }
- end
-end
-
-# docker.io/polymathrobotics/ros:noetic-desktop-full-jammy
-control 'desktop-full' do
- only_if('desktop-full') do
- input('test_container_image').include?('ros:noetic-desktop-full-jammy')
- end
-
- describe command('colcon') do
- it { should exist }
- end
-end
diff --git a/ros/ready/ubuntu/Containerfile b/ros/ready/ubuntu/Containerfile
index 096069b..eaaa453 100644
--- a/ros/ready/ubuntu/Containerfile
+++ b/ros/ready/ubuntu/Containerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:1
-ARG BASE_IMAGE=ubuntu:noble-20250529
+ARG BASE_IMAGE=ubuntu:noble-20260217
# hadolint ignore=DL3006
FROM ${BASE_IMAGE} AS base
diff --git a/ros/ready/ubuntu/docker-bake.hcl b/ros/ready/ubuntu/docker-bake.hcl
index 205a930..8d35639 100644
--- a/ros/ready/ubuntu/docker-bake.hcl
+++ b/ros/ready/ubuntu/docker-bake.hcl
@@ -9,10 +9,10 @@ variable "LOCAL_PLATFORM" {
variable "DISTRO" {
default = [
- {ros = "humble", base_image = "ubuntu:jammy-20250530"},
- {ros = "jazzy", base_image = "ubuntu:noble-20250529"},
- {ros = "kilted", base_image = "ubuntu:noble-20250529"},
- {ros = "rolling", base_image = "ubuntu:noble-20250529"},
+ {ros = "humble", base_image = "ubuntu:jammy-20260217"},
+ {ros = "jazzy", base_image = "ubuntu:noble-20260217"},
+ {ros = "kilted", base_image = "ubuntu:noble-20260217"},
+ {ros = "rolling", base_image = "ubuntu:noble-20260217"},
]
}