From 82239372b0da74c9eb4241844b2a617790630b25 Mon Sep 17 00:00:00 2001 From: David Tarazi Date: Wed, 25 Mar 2026 12:25:52 -0700 Subject: [PATCH 1/2] removed noetic, updated the base ubuntu image for all other ros images --- README.md | 2 +- ros/humble/ubuntu/jammy/Containerfile | 2 +- ros/iron/ubuntu/jammy/Containerfile | 2 +- ros/jazzy/ubuntu/noble/Containerfile | 2 +- ros/noetic/ubuntu/focal/Containerfile | 107 ------------------ ros/noetic/ubuntu/focal/docker-bake.hcl | 55 --------- ros/noetic/ubuntu/focal/ros_entrypoint.sh | 6 - .../ubuntu/focal/test/controls/ros_noetic.rb | 89 --------------- ros/ready/ubuntu/Containerfile | 2 +- ros/ready/ubuntu/docker-bake.hcl | 8 +- 10 files changed, 9 insertions(+), 266 deletions(-) delete mode 100644 ros/noetic/ubuntu/focal/Containerfile delete mode 100644 ros/noetic/ubuntu/focal/docker-bake.hcl delete mode 100755 ros/noetic/ubuntu/focal/ros_entrypoint.sh delete mode 100644 ros/noetic/ubuntu/focal/test/controls/ros_noetic.rb diff --git a/README.md b/README.md index da9aa379..63858cb3 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)
[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)
[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 d231f564..8427aefd 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 index da9f1757..2f5dc9b3 100644 --- a/ros/iron/ubuntu/jammy/Containerfile +++ b/ros/iron/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/jazzy/ubuntu/noble/Containerfile b/ros/jazzy/ubuntu/noble/Containerfile index 73a1f2ad..52b1b355 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 0afd89ed..00000000 --- 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 04fa881d..00000000 --- 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 63392747..00000000 --- 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 cb0c8b5a..00000000 --- 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 096069ba..eaaa453c 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 205a930b..8d35639a 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"}, ] } From 65c4d813a58d399d27fe543b404ccd54ca9ef9ed Mon Sep 17 00:00:00 2001 From: David Tarazi Date: Wed, 25 Mar 2026 12:36:36 -0700 Subject: [PATCH 2/2] remove iron, update the ci to auto build ros --- .github/workflows/ci.yml | 3 + README.md | 2 +- ros/iron/ubuntu/jammy/Containerfile | 118 ------------------ ros/iron/ubuntu/jammy/docker-bake.hcl | 55 -------- ros/iron/ubuntu/jammy/ros_entrypoint.sh | 6 - .../ubuntu/jammy/test/controls/ros_iron.rb | 100 --------------- 6 files changed, 4 insertions(+), 280 deletions(-) delete mode 100644 ros/iron/ubuntu/jammy/Containerfile delete mode 100644 ros/iron/ubuntu/jammy/docker-bake.hcl delete mode 100755 ros/iron/ubuntu/jammy/ros_entrypoint.sh delete mode 100644 ros/iron/ubuntu/jammy/test/controls/ros_iron.rb diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6c98029e..08248577 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 63858cb3..f7ea24f6 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)
[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/iron/ubuntu/jammy/Containerfile b/ros/iron/ubuntu/jammy/Containerfile deleted file mode 100644 index 2f5dc9b3..00000000 --- a/ros/iron/ubuntu/jammy/Containerfile +++ /dev/null @@ -1,118 +0,0 @@ -# syntax=docker/dockerfile:1 -ARG BASE_IMAGE=docker.io/ubuntu:jammy-20260217 -# 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 b362a7c4..00000000 --- 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 28bc65ae..00000000 --- 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 df2422bb..00000000 --- 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