diff --git a/.travis.yml b/.travis.yml index 042bfc504..d64e7eeaf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,8 +11,9 @@ install: env: # ros2 - - HUB_REPO=ros2 HUB_RELEASE=ardent HUB_OS_NAME=ubuntu HUB_OS_CODE_NAME=xenial - - HUB_REPO=ros2 HUB_RELEASE=bouncy HUB_OS_NAME=ubuntu HUB_OS_CODE_NAME=bionic + - HUB_REPO=ros HUB_RELEASE=crystal HUB_OS_NAME=ubuntu HUB_OS_CODE_NAME=bionic + - HUB_REPO=ros HUB_RELEASE=bouncy HUB_OS_NAME=ubuntu HUB_OS_CODE_NAME=bionic + - HUB_REPO=ros HUB_RELEASE=ardent HUB_OS_NAME=ubuntu HUB_OS_CODE_NAME=xenial # ros - HUB_REPO=ros HUB_RELEASE=melodic HUB_OS_NAME=ubuntu HUB_OS_CODE_NAME=bionic - HUB_REPO=ros HUB_RELEASE=melodic HUB_OS_NAME=debian HUB_OS_CODE_NAME=stretch diff --git a/README.md b/README.md index ed21ddce4..0f8c23d03 100644 --- a/README.md +++ b/README.md @@ -40,12 +40,6 @@ This repo hosts the Dockerfiles used to generate the official images for OSRF pr * amd64 [![Docker Build Status](https://img.shields.io/docker/build/osrf/gazebo.svg)](https://hub.docker.com/r/osrf/gazebo/builds/) -### [SROS ![Docker Pulls](https://img.shields.io/docker/pulls/osrf/sros.svg) ![Docker Stars](https://img.shields.io/docker/stars/osrf/sros.svg)](https://registry.hub.docker.com/u/osrf/sros/) -[![Compare Images](https://images.microbadger.com/badges/image/osrf/sros.svg)](https://microbadger.com/#/images/osrf/sros) - -* amd64 [![Docker Build Status](https://img.shields.io/docker/build/osrf/sros.svg)](https://hub.docker.com/r/osrf/sros/builds/) - - ### [ROS Legacy ![Docker Pulls](https://img.shields.io/docker/pulls/osrf/ros_legacy.svg) ![Docker Stars](https://img.shields.io/docker/stars/osrf/ros_legacy.svg)](https://registry.hub.docker.com/u/osrf/ros_legacy/) [![Compare Images](https://images.microbadger.com/badges/image/osrf/ros_legacy.svg)](https://microbadger.com/#/images/osrf/ros_legacy) diff --git a/ros/.config/Makefile.em b/ros/.config/ros1/Makefile.em similarity index 100% rename from ros/.config/Makefile.em rename to ros/.config/ros1/Makefile.em diff --git a/ros/.config/images.yaml.em b/ros/.config/ros1/images.yaml.em similarity index 100% rename from ros/.config/images.yaml.em rename to ros/.config/ros1/images.yaml.em diff --git a/ros/.config/platform.yaml.em b/ros/.config/ros1/platform.yaml.em similarity index 100% rename from ros/.config/platform.yaml.em rename to ros/.config/ros1/platform.yaml.em diff --git a/ros/.config/ros2/Makefile.em b/ros/.config/ros2/Makefile.em new file mode 100644 index 000000000..053392807 --- /dev/null +++ b/ros/.config/ros2/Makefile.em @@ -0,0 +1,28 @@ +all: help + +help: + @echo "" + @echo "-- Help Menu" + @echo "" + @echo " 1. make build - build all images" + @echo " 2. make pull - pull all images" + @echo " 3. make clean - remove all images" + @echo "" + +build: + @docker build --tag=ros:$release_name-ros-core-$os_code_name ros-core/. + @docker build --tag=ros:$release_name-ros-base-$os_code_name ros-base/. + # @docker build --tag=osrf/ros:$release_name-desktop-$os_code_name desktop/. + # @docker build --tag=osrf/ros:$release_name-ros1-bridge-$os_code_name ros1-bridge/. + +pull: + @docker pull ros:$release_name-ros-core-$os_code_name + @docker pull ros:$release_name-ros-base-$os_code_name + # @docker pull osrf/ros:$release_name-desktop-$os_code_name + # @docker pull osrf/ros:$release_name-ros1-bridge-$os_code_name + +clean: + @docker rmi -f ros:$release_name-ros-core-$os_code_name + @docker rmi -f ros:$release_name-ros-base-$os_code_name + # @docker rmi -f osrf/ros:$release_name-desktop-$os_code_name + # @docker rmi -f osrf/ros:$release_name-ros1-bridge-$os_code_name diff --git a/ros2/ardent/ubuntu/xenial/images.yaml.em b/ros/.config/ros2/images.yaml.em similarity index 53% rename from ros2/ardent/ubuntu/xenial/images.yaml.em rename to ros/.config/ros2/images.yaml.em index 3b3664385..64d99718a 100644 --- a/ros2/ardent/ubuntu/xenial/images.yaml.em +++ b/ros/.config/ros2/images.yaml.em @@ -5,8 +5,8 @@ images: ros-core: base_image: @(os_name):@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_core_image.Dockerfile.em - entrypoint_name: docker_images/ros2_entrypoint.sh + template_name: docker_images_ros2/create_ros_core_image.Dockerfile.em + entrypoint_name: docker_images_ros2/ros_entrypoint.sh pip3_install: - argcomplete template_packages: @@ -14,28 +14,27 @@ images: ros2_packages: - ros-core ros-base: - base_image: osrf/@(user_name):@(ros2distro_name)-ros-core + base_image: @(user_name):@(ros2distro_name)-ros-core-@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_image.Dockerfile.em + template_name: docker_images_ros2/create_ros_image.Dockerfile.em template_packages: - docker_templates ros2_packages: - ros-base desktop: - base_image: osrf/@(user_name):@(ros2distro_name)-ros-base + base_image: @(user_name):@(ros2distro_name)-ros-base-@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_image.Dockerfile.em + template_name: docker_images_ros2/create_ros_image.Dockerfile.em template_packages: - docker_templates ros2_packages: - desktop ros1-bridge: - base_image: osrf/@(user_name):@(ros2distro_name)-desktop + base_image: @(user_name):@(ros2distro_name)-ros-base-@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_ros1_bridge_image.Dockerfile.em - entrypoint_name: docker_images/ros1_bridge_entrypoint.sh + template_name: docker_images_ros2/ros1_bridge/create_ros_ros1_bridge_image.Dockerfile.em + entrypoint_name: docker_images_ros2/ros1_bridge/ros_entrypoint.sh template_packages: - docker_templates ros2_packages: - ros1-bridge - - turtlebot2-demo diff --git a/ros2/.config/platform.yaml.em b/ros/.config/ros2/platform.yaml.em similarity index 85% rename from ros2/.config/platform.yaml.em rename to ros/.config/ros2/platform.yaml.em index ac864d249..6ac6d12de 100644 --- a/ros2/.config/platform.yaml.em +++ b/ros/.config/ros2/platform.yaml.em @@ -6,8 +6,8 @@ platform: os_code_name: $os_code_name rosdistro_name: $rosdistro_name ros2distro_name: $release_name - user_name: ros2 + user_name: ros maintainer_name: arch: amd64 type: distribution - version: false + version: diff --git a/ros/ardent/ubuntu/xenial/Makefile b/ros/ardent/ubuntu/xenial/Makefile new file mode 100644 index 000000000..7ed9586b5 --- /dev/null +++ b/ros/ardent/ubuntu/xenial/Makefile @@ -0,0 +1,28 @@ +all: help + +help: + @echo "" + @echo "-- Help Menu" + @echo "" + @echo " 1. make build - build all images" + @echo " 2. make pull - pull all images" + @echo " 3. make clean - remove all images" + @echo "" + +build: + @docker build --tag=ros:ardent-ros-core-xenial ros-core/. + @docker build --tag=ros:ardent-ros-base-xenial ros-base/. + # @docker build --tag=osrf/ros:ardent-desktop-xenial desktop/. + # @docker build --tag=osrf/ros:ardent-ros1-bridge-xenial ros1-bridge/. + +pull: + @docker pull ros:ardent-ros-core-xenial + @docker pull ros:ardent-ros-base-xenial + # @docker pull osrf/ros:ardent-desktop-xenial + # @docker pull osrf/ros:ardent-ros1-bridge-xenial + +clean: + @docker rmi -f ros:ardent-ros-core-xenial + @docker rmi -f ros:ardent-ros-base-xenial + # @docker rmi -f osrf/ros:ardent-desktop-xenial + # @docker rmi -f osrf/ros:ardent-ros1-bridge-xenial diff --git a/ros/ardent/ubuntu/xenial/desktop/Dockerfile b/ros/ardent/ubuntu/xenial/desktop/Dockerfile new file mode 100644 index 000000000..dd90288ac --- /dev/null +++ b/ros/ardent/ubuntu/xenial/desktop/Dockerfile @@ -0,0 +1,8 @@ +# This is an auto generated Dockerfile for ros:desktop +# generated from docker_images_ros2/create_ros_image.Dockerfile.em +FROM ros:ardent-ros-base-xenial +# install ros2 packages +RUN apt-get update && apt-get install -y \ + ros-ardent-desktop=0.4.0-1* \ + && rm -rf /var/lib/apt/lists/* + diff --git a/ros/ardent/ubuntu/xenial/desktop/hooks/post_push b/ros/ardent/ubuntu/xenial/desktop/hooks/post_push new file mode 100755 index 000000000..1d20643b5 --- /dev/null +++ b/ros/ardent/ubuntu/xenial/desktop/hooks/post_push @@ -0,0 +1,14 @@ +#!/bin/bash +# http://windsock.io/automated-docker-image-builds-with-multiple-tags/ + +set -e + +# Parse image name for repo name +tagStart=$(expr index "$IMAGE_NAME" :) +repoName=${IMAGE_NAME:0:tagStart-1} + +# Tag and push image for each additional tag +for tag in ardent-desktop; do + docker tag $IMAGE_NAME ${repoName}:${tag} + docker push ${repoName}:${tag} +done diff --git a/ros2/.config/images.yaml.em b/ros/ardent/ubuntu/xenial/images.yaml.em similarity index 53% rename from ros2/.config/images.yaml.em rename to ros/ardent/ubuntu/xenial/images.yaml.em index 3b3664385..64d99718a 100644 --- a/ros2/.config/images.yaml.em +++ b/ros/ardent/ubuntu/xenial/images.yaml.em @@ -5,8 +5,8 @@ images: ros-core: base_image: @(os_name):@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_core_image.Dockerfile.em - entrypoint_name: docker_images/ros2_entrypoint.sh + template_name: docker_images_ros2/create_ros_core_image.Dockerfile.em + entrypoint_name: docker_images_ros2/ros_entrypoint.sh pip3_install: - argcomplete template_packages: @@ -14,28 +14,27 @@ images: ros2_packages: - ros-core ros-base: - base_image: osrf/@(user_name):@(ros2distro_name)-ros-core + base_image: @(user_name):@(ros2distro_name)-ros-core-@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_image.Dockerfile.em + template_name: docker_images_ros2/create_ros_image.Dockerfile.em template_packages: - docker_templates ros2_packages: - ros-base desktop: - base_image: osrf/@(user_name):@(ros2distro_name)-ros-base + base_image: @(user_name):@(ros2distro_name)-ros-base-@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_image.Dockerfile.em + template_name: docker_images_ros2/create_ros_image.Dockerfile.em template_packages: - docker_templates ros2_packages: - desktop ros1-bridge: - base_image: osrf/@(user_name):@(ros2distro_name)-desktop + base_image: @(user_name):@(ros2distro_name)-ros-base-@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_ros1_bridge_image.Dockerfile.em - entrypoint_name: docker_images/ros1_bridge_entrypoint.sh + template_name: docker_images_ros2/ros1_bridge/create_ros_ros1_bridge_image.Dockerfile.em + entrypoint_name: docker_images_ros2/ros1_bridge/ros_entrypoint.sh template_packages: - docker_templates ros2_packages: - ros1-bridge - - turtlebot2-demo diff --git a/ros2/ardent/ubuntu/xenial/platform.yaml b/ros/ardent/ubuntu/xenial/platform.yaml similarity index 84% rename from ros2/ardent/ubuntu/xenial/platform.yaml rename to ros/ardent/ubuntu/xenial/platform.yaml index 0ca7df810..b3f6be7b5 100644 --- a/ros2/ardent/ubuntu/xenial/platform.yaml +++ b/ros/ardent/ubuntu/xenial/platform.yaml @@ -6,8 +6,8 @@ platform: os_code_name: xenial rosdistro_name: kinetic ros2distro_name: ardent - user_name: ros2 + user_name: ros maintainer_name: arch: amd64 type: distribution - version: false + version: diff --git a/ros/ardent/ubuntu/xenial/ros-base/Dockerfile b/ros/ardent/ubuntu/xenial/ros-base/Dockerfile new file mode 100644 index 000000000..be76aba76 --- /dev/null +++ b/ros/ardent/ubuntu/xenial/ros-base/Dockerfile @@ -0,0 +1,8 @@ +# This is an auto generated Dockerfile for ros:ros-base +# generated from docker_images_ros2/create_ros_image.Dockerfile.em +FROM ros:ardent-ros-core-xenial +# install ros2 packages +RUN apt-get update && apt-get install -y \ + ros-ardent-ros-base=0.4.0-1* \ + && rm -rf /var/lib/apt/lists/* + diff --git a/ros/ardent/ubuntu/xenial/ros-core/Dockerfile b/ros/ardent/ubuntu/xenial/ros-core/Dockerfile new file mode 100644 index 000000000..002bb99e6 --- /dev/null +++ b/ros/ardent/ubuntu/xenial/ros-core/Dockerfile @@ -0,0 +1,49 @@ +# This is an auto generated Dockerfile for ros:ros-core +# generated from docker_images_ros2/create_ros_core_image.Dockerfile.em +FROM ubuntu:xenial + +# install packages +RUN apt-get update && apt-get install -q -y \ + dirmngr \ + gnupg2 \ + lsb-release \ + python3-pip \ + && rm -rf /var/lib/apt/lists/* + +# setup ros2 keys +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 + +# setup sources.list +RUN echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros2-latest.list + +# install bootstrap tools +RUN apt-get update && apt-get install --no-install-recommends -y \ + python3-rosdep \ + python3-rosinstall \ + python3-vcstools \ + && rm -rf /var/lib/apt/lists/* + +# setup environment +ENV LANG C.UTF-8 +ENV LC_ALL C.UTF-8 + +# bootstrap rosdep +ENV ROSDISTRO_INDEX_URL https://raw.githubusercontent.com/ros2/rosdistro/ros2/index.yaml +RUN rosdep init \ + && rosdep update + +# install python packages +RUN pip3 install -U \ + argcomplete + +# install ros2 packages +ENV ROS_DISTRO ardent +RUN apt-get update && apt-get install -y \ + ros-ardent-ros-core=0.4.0-1* \ + && rm -rf /var/lib/apt/lists/* + +# setup entrypoint +COPY ./ros_entrypoint.sh / + +ENTRYPOINT ["/ros_entrypoint.sh"] +CMD ["bash"] diff --git a/ros2/ardent/ubuntu/xenial/ros-core/ros2_entrypoint.sh b/ros/ardent/ubuntu/xenial/ros-core/ros_entrypoint.sh similarity index 100% rename from ros2/ardent/ubuntu/xenial/ros-core/ros2_entrypoint.sh rename to ros/ardent/ubuntu/xenial/ros-core/ros_entrypoint.sh diff --git a/ros2/ardent/ubuntu/xenial/ros1-bridge/Dockerfile b/ros/ardent/ubuntu/xenial/ros1-bridge/Dockerfile similarity index 59% rename from ros2/ardent/ubuntu/xenial/ros1-bridge/Dockerfile rename to ros/ardent/ubuntu/xenial/ros1-bridge/Dockerfile index 4b0f76799..ce694e659 100644 --- a/ros2/ardent/ubuntu/xenial/ros1-bridge/Dockerfile +++ b/ros/ardent/ubuntu/xenial/ros1-bridge/Dockerfile @@ -1,6 +1,6 @@ -# This is an auto generated Dockerfile for ros2:ros1-bridge -# generated from docker_images/create_ros2_ros1_bridge_image.Dockerfile.em -FROM osrf/ros2:ardent-desktop +# This is an auto generated Dockerfile for ros:ros1-bridge +# generated from docker_images_ros2/ros1_bridge/create_ros_ros1_bridge_image.Dockerfile.em +FROM ros:ardent-ros-base-xenial # setup keys RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 @@ -12,12 +12,11 @@ ENV ROS1_DISTRO kinetic ENV ROS2_DISTRO ardent # install ros2 packages RUN apt-get update && apt-get install -y \ - ros-ardent-ros1-bridge \ - ros-ardent-turtlebot2-demo \ + ros-ardent-ros1-bridge=0.4.0-0* \ && rm -rf /var/lib/apt/lists/* # setup entrypoint -COPY ./ros1_bridge_entrypoint.sh / +COPY ./ros_entrypoint.sh / -ENTRYPOINT ["/ros1_bridge_entrypoint.sh"] +ENTRYPOINT ["/ros_entrypoint.sh"] CMD ["bash"] diff --git a/ros/ardent/ubuntu/xenial/ros1-bridge/hooks/post_push b/ros/ardent/ubuntu/xenial/ros1-bridge/hooks/post_push new file mode 100755 index 000000000..713e9045e --- /dev/null +++ b/ros/ardent/ubuntu/xenial/ros1-bridge/hooks/post_push @@ -0,0 +1,14 @@ +#!/bin/bash +# http://windsock.io/automated-docker-image-builds-with-multiple-tags/ + +set -e + +# Parse image name for repo name +tagStart=$(expr index "$IMAGE_NAME" :) +repoName=${IMAGE_NAME:0:tagStart-1} + +# Tag and push image for each additional tag +for tag in ardent-ros1-bridge; do + docker tag $IMAGE_NAME ${repoName}:${tag} + docker push ${repoName}:${tag} +done diff --git a/ros2/ardent/ubuntu/xenial/ros1-bridge/ros1_bridge_entrypoint.sh b/ros/ardent/ubuntu/xenial/ros1-bridge/ros_entrypoint.sh similarity index 100% rename from ros2/ardent/ubuntu/xenial/ros1-bridge/ros1_bridge_entrypoint.sh rename to ros/ardent/ubuntu/xenial/ros1-bridge/ros_entrypoint.sh diff --git a/ros/bouncy/ubuntu/bionic/Makefile b/ros/bouncy/ubuntu/bionic/Makefile new file mode 100644 index 000000000..19eb9735c --- /dev/null +++ b/ros/bouncy/ubuntu/bionic/Makefile @@ -0,0 +1,28 @@ +all: help + +help: + @echo "" + @echo "-- Help Menu" + @echo "" + @echo " 1. make build - build all images" + @echo " 2. make pull - pull all images" + @echo " 3. make clean - remove all images" + @echo "" + +build: + @docker build --tag=ros:bouncy-ros-core-bionic ros-core/. + @docker build --tag=ros:bouncy-ros-base-bionic ros-base/. + # @docker build --tag=osrf/ros:bouncy-desktop-bionic desktop/. + # @docker build --tag=osrf/ros:bouncy-ros1-bridge-bionic ros1-bridge/. + +pull: + @docker pull ros:bouncy-ros-core-bionic + @docker pull ros:bouncy-ros-base-bionic + # @docker pull osrf/ros:bouncy-desktop-bionic + # @docker pull osrf/ros:bouncy-ros1-bridge-bionic + +clean: + @docker rmi -f ros:bouncy-ros-core-bionic + @docker rmi -f ros:bouncy-ros-base-bionic + # @docker rmi -f osrf/ros:bouncy-desktop-bionic + # @docker rmi -f osrf/ros:bouncy-ros1-bridge-bionic diff --git a/ros/bouncy/ubuntu/bionic/desktop/Dockerfile b/ros/bouncy/ubuntu/bionic/desktop/Dockerfile new file mode 100644 index 000000000..718120f20 --- /dev/null +++ b/ros/bouncy/ubuntu/bionic/desktop/Dockerfile @@ -0,0 +1,8 @@ +# This is an auto generated Dockerfile for ros:desktop +# generated from docker_images_ros2/create_ros_image.Dockerfile.em +FROM ros:bouncy-ros-base-bionic +# install ros2 packages +RUN apt-get update && apt-get install -y \ + ros-bouncy-desktop=0.5.1-0* \ + && rm -rf /var/lib/apt/lists/* + diff --git a/ros/bouncy/ubuntu/bionic/desktop/hooks/post_push b/ros/bouncy/ubuntu/bionic/desktop/hooks/post_push new file mode 100755 index 000000000..7b97aec3a --- /dev/null +++ b/ros/bouncy/ubuntu/bionic/desktop/hooks/post_push @@ -0,0 +1,14 @@ +#!/bin/bash +# http://windsock.io/automated-docker-image-builds-with-multiple-tags/ + +set -e + +# Parse image name for repo name +tagStart=$(expr index "$IMAGE_NAME" :) +repoName=${IMAGE_NAME:0:tagStart-1} + +# Tag and push image for each additional tag +for tag in bouncy-desktop; do + docker tag $IMAGE_NAME ${repoName}:${tag} + docker push ${repoName}:${tag} +done diff --git a/ros2/bouncy/ubuntu/bionic/images.yaml.em b/ros/bouncy/ubuntu/bionic/images.yaml.em similarity index 53% rename from ros2/bouncy/ubuntu/bionic/images.yaml.em rename to ros/bouncy/ubuntu/bionic/images.yaml.em index 3b3664385..64d99718a 100644 --- a/ros2/bouncy/ubuntu/bionic/images.yaml.em +++ b/ros/bouncy/ubuntu/bionic/images.yaml.em @@ -5,8 +5,8 @@ images: ros-core: base_image: @(os_name):@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_core_image.Dockerfile.em - entrypoint_name: docker_images/ros2_entrypoint.sh + template_name: docker_images_ros2/create_ros_core_image.Dockerfile.em + entrypoint_name: docker_images_ros2/ros_entrypoint.sh pip3_install: - argcomplete template_packages: @@ -14,28 +14,27 @@ images: ros2_packages: - ros-core ros-base: - base_image: osrf/@(user_name):@(ros2distro_name)-ros-core + base_image: @(user_name):@(ros2distro_name)-ros-core-@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_image.Dockerfile.em + template_name: docker_images_ros2/create_ros_image.Dockerfile.em template_packages: - docker_templates ros2_packages: - ros-base desktop: - base_image: osrf/@(user_name):@(ros2distro_name)-ros-base + base_image: @(user_name):@(ros2distro_name)-ros-base-@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_image.Dockerfile.em + template_name: docker_images_ros2/create_ros_image.Dockerfile.em template_packages: - docker_templates ros2_packages: - desktop ros1-bridge: - base_image: osrf/@(user_name):@(ros2distro_name)-desktop + base_image: @(user_name):@(ros2distro_name)-ros-base-@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_ros1_bridge_image.Dockerfile.em - entrypoint_name: docker_images/ros1_bridge_entrypoint.sh + template_name: docker_images_ros2/ros1_bridge/create_ros_ros1_bridge_image.Dockerfile.em + entrypoint_name: docker_images_ros2/ros1_bridge/ros_entrypoint.sh template_packages: - docker_templates ros2_packages: - ros1-bridge - - turtlebot2-demo diff --git a/ros2/bouncy/ubuntu/bionic/platform.yaml b/ros/bouncy/ubuntu/bionic/platform.yaml similarity index 84% rename from ros2/bouncy/ubuntu/bionic/platform.yaml rename to ros/bouncy/ubuntu/bionic/platform.yaml index cc41c3b02..be8bc9984 100644 --- a/ros2/bouncy/ubuntu/bionic/platform.yaml +++ b/ros/bouncy/ubuntu/bionic/platform.yaml @@ -6,8 +6,8 @@ platform: os_code_name: bionic rosdistro_name: melodic ros2distro_name: bouncy - user_name: ros2 + user_name: ros maintainer_name: arch: amd64 type: distribution - version: false + version: diff --git a/ros/bouncy/ubuntu/bionic/ros-base/Dockerfile b/ros/bouncy/ubuntu/bionic/ros-base/Dockerfile new file mode 100644 index 000000000..d1b945f4e --- /dev/null +++ b/ros/bouncy/ubuntu/bionic/ros-base/Dockerfile @@ -0,0 +1,8 @@ +# This is an auto generated Dockerfile for ros:ros-base +# generated from docker_images_ros2/create_ros_image.Dockerfile.em +FROM ros:bouncy-ros-core-bionic +# install ros2 packages +RUN apt-get update && apt-get install -y \ + ros-bouncy-ros-base=0.5.1-0* \ + && rm -rf /var/lib/apt/lists/* + diff --git a/ros2/bouncy/ubuntu/bionic/ros-core/Dockerfile b/ros/bouncy/ubuntu/bionic/ros-core/Dockerfile similarity index 53% rename from ros2/bouncy/ubuntu/bionic/ros-core/Dockerfile rename to ros/bouncy/ubuntu/bionic/ros-core/Dockerfile index dd00090c7..a880f4e7c 100644 --- a/ros2/bouncy/ubuntu/bionic/ros-core/Dockerfile +++ b/ros/bouncy/ubuntu/bionic/ros-core/Dockerfile @@ -1,12 +1,12 @@ -# This is an auto generated Dockerfile for ros2:ros-core -# generated from docker_images/create_ros2_core_image.Dockerfile.em +# This is an auto generated Dockerfile for ros:ros-core +# generated from docker_images_ros2/create_ros_core_image.Dockerfile.em FROM ubuntu:bionic +# setup timezone RUN echo 'Etc/UTC' > /etc/timezone && \ ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \ apt-get update && apt-get install -q -y tzdata && rm -rf /var/lib/apt/lists/* - # install packages RUN apt-get update && apt-get install -q -y \ dirmngr \ @@ -15,31 +15,40 @@ RUN apt-get update && apt-get install -q -y \ python3-pip \ && rm -rf /var/lib/apt/lists/* - # setup ros2 keys RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 # setup sources.list -RUN . /etc/os-release \ - && echo "deb http://repo.ros2.org/$ID/main `lsb_release -sc` main" > /etc/apt/sources.list.d/ros2-latest.list +RUN echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros2-latest.list + +# install bootstrap tools +RUN apt-get update && apt-get install --no-install-recommends -y \ + python3-rosdep \ + python3-rosinstall \ + python3-vcstools \ + && rm -rf /var/lib/apt/lists/* # setup environment ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 -ENV ROS_DISTRO bouncy +# bootstrap rosdep +ENV ROSDISTRO_INDEX_URL https://raw.githubusercontent.com/ros2/rosdistro/ros2/index.yaml +RUN rosdep init \ + && rosdep update # install python packages RUN pip3 install -U \ argcomplete # install ros2 packages +ENV ROS_DISTRO bouncy RUN apt-get update && apt-get install -y \ - ros-bouncy-ros-core \ + ros-bouncy-ros-core=0.5.1-0* \ && rm -rf /var/lib/apt/lists/* # setup entrypoint -COPY ./ros2_entrypoint.sh / +COPY ./ros_entrypoint.sh / -ENTRYPOINT ["/ros2_entrypoint.sh"] +ENTRYPOINT ["/ros_entrypoint.sh"] CMD ["bash"] diff --git a/ros2/bouncy/ubuntu/bionic/ros-core/ros2_entrypoint.sh b/ros/bouncy/ubuntu/bionic/ros-core/ros_entrypoint.sh similarity index 100% rename from ros2/bouncy/ubuntu/bionic/ros-core/ros2_entrypoint.sh rename to ros/bouncy/ubuntu/bionic/ros-core/ros_entrypoint.sh diff --git a/ros2/bouncy/ubuntu/bionic/ros1-bridge/Dockerfile b/ros/bouncy/ubuntu/bionic/ros1-bridge/Dockerfile similarity index 59% rename from ros2/bouncy/ubuntu/bionic/ros1-bridge/Dockerfile rename to ros/bouncy/ubuntu/bionic/ros1-bridge/Dockerfile index 9e910f24a..a4a86b02a 100644 --- a/ros2/bouncy/ubuntu/bionic/ros1-bridge/Dockerfile +++ b/ros/bouncy/ubuntu/bionic/ros1-bridge/Dockerfile @@ -1,6 +1,6 @@ -# This is an auto generated Dockerfile for ros2:ros1-bridge -# generated from docker_images/create_ros2_ros1_bridge_image.Dockerfile.em -FROM osrf/ros2:bouncy-desktop +# This is an auto generated Dockerfile for ros:ros1-bridge +# generated from docker_images_ros2/ros1_bridge/create_ros_ros1_bridge_image.Dockerfile.em +FROM ros:bouncy-ros-base-bionic # setup keys RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 @@ -12,12 +12,11 @@ ENV ROS1_DISTRO melodic ENV ROS2_DISTRO bouncy # install ros2 packages RUN apt-get update && apt-get install -y \ - ros-bouncy-ros1-bridge \ - ros-bouncy-turtlebot2-demo \ + ros-bouncy-ros1-bridge=0.5.1-0* \ && rm -rf /var/lib/apt/lists/* # setup entrypoint -COPY ./ros1_bridge_entrypoint.sh / +COPY ./ros_entrypoint.sh / -ENTRYPOINT ["/ros1_bridge_entrypoint.sh"] +ENTRYPOINT ["/ros_entrypoint.sh"] CMD ["bash"] diff --git a/ros/bouncy/ubuntu/bionic/ros1-bridge/hooks/post_push b/ros/bouncy/ubuntu/bionic/ros1-bridge/hooks/post_push new file mode 100755 index 000000000..088eb244d --- /dev/null +++ b/ros/bouncy/ubuntu/bionic/ros1-bridge/hooks/post_push @@ -0,0 +1,14 @@ +#!/bin/bash +# http://windsock.io/automated-docker-image-builds-with-multiple-tags/ + +set -e + +# Parse image name for repo name +tagStart=$(expr index "$IMAGE_NAME" :) +repoName=${IMAGE_NAME:0:tagStart-1} + +# Tag and push image for each additional tag +for tag in bouncy-ros1-bridge; do + docker tag $IMAGE_NAME ${repoName}:${tag} + docker push ${repoName}:${tag} +done diff --git a/ros2/bouncy/ubuntu/bionic/ros1-bridge/ros1_bridge_entrypoint.sh b/ros/bouncy/ubuntu/bionic/ros1-bridge/ros_entrypoint.sh similarity index 100% rename from ros2/bouncy/ubuntu/bionic/ros1-bridge/ros1_bridge_entrypoint.sh rename to ros/bouncy/ubuntu/bionic/ros1-bridge/ros_entrypoint.sh diff --git a/ros/crystal/ubuntu/bionic/Makefile b/ros/crystal/ubuntu/bionic/Makefile new file mode 100644 index 000000000..e59cbc47d --- /dev/null +++ b/ros/crystal/ubuntu/bionic/Makefile @@ -0,0 +1,28 @@ +all: help + +help: + @echo "" + @echo "-- Help Menu" + @echo "" + @echo " 1. make build - build all images" + @echo " 2. make pull - pull all images" + @echo " 3. make clean - remove all images" + @echo "" + +build: + @docker build --tag=ros:crystal-ros-core-bionic ros-core/. + @docker build --tag=ros:crystal-ros-base-bionic ros-base/. + # @docker build --tag=osrf/ros:crystal-desktop-bionic desktop/. + # @docker build --tag=osrf/ros:crystal-ros1-bridge-bionic ros1-bridge/. + +pull: + @docker pull ros:crystal-ros-core-bionic + @docker pull ros:crystal-ros-base-bionic + # @docker pull osrf/ros:crystal-desktop-bionic + # @docker pull osrf/ros:crystal-ros1-bridge-bionic + +clean: + @docker rmi -f ros:crystal-ros-core-bionic + @docker rmi -f ros:crystal-ros-base-bionic + # @docker rmi -f osrf/ros:crystal-desktop-bionic + # @docker rmi -f osrf/ros:crystal-ros1-bridge-bionic diff --git a/ros/crystal/ubuntu/bionic/desktop/Dockerfile b/ros/crystal/ubuntu/bionic/desktop/Dockerfile new file mode 100644 index 000000000..4b06a1233 --- /dev/null +++ b/ros/crystal/ubuntu/bionic/desktop/Dockerfile @@ -0,0 +1,8 @@ +# This is an auto generated Dockerfile for ros:desktop +# generated from docker_images_ros2/create_ros_image.Dockerfile.em +FROM ros:crystal-ros-base-bionic +# install ros2 packages +RUN apt-get update && apt-get install -y \ + ros-crystal-desktop=0.6.1-0* \ + && rm -rf /var/lib/apt/lists/* + diff --git a/ros/crystal/ubuntu/bionic/desktop/hooks/post_push b/ros/crystal/ubuntu/bionic/desktop/hooks/post_push new file mode 100755 index 000000000..c05af9bd3 --- /dev/null +++ b/ros/crystal/ubuntu/bionic/desktop/hooks/post_push @@ -0,0 +1,14 @@ +#!/bin/bash +# http://windsock.io/automated-docker-image-builds-with-multiple-tags/ + +set -e + +# Parse image name for repo name +tagStart=$(expr index "$IMAGE_NAME" :) +repoName=${IMAGE_NAME:0:tagStart-1} + +# Tag and push image for each additional tag +for tag in crystal-desktop; do + docker tag $IMAGE_NAME ${repoName}:${tag} + docker push ${repoName}:${tag} +done diff --git a/ros/crystal/ubuntu/bionic/images.yaml.em b/ros/crystal/ubuntu/bionic/images.yaml.em new file mode 100644 index 000000000..64d99718a --- /dev/null +++ b/ros/crystal/ubuntu/bionic/images.yaml.em @@ -0,0 +1,40 @@ +%YAML 1.1 +# ROS2 Dockerfile database +--- +images: + ros-core: + base_image: @(os_name):@(os_code_name) + maintainer_name: @(maintainer_name) + template_name: docker_images_ros2/create_ros_core_image.Dockerfile.em + entrypoint_name: docker_images_ros2/ros_entrypoint.sh + pip3_install: + - argcomplete + template_packages: + - docker_templates + ros2_packages: + - ros-core + ros-base: + base_image: @(user_name):@(ros2distro_name)-ros-core-@(os_code_name) + maintainer_name: @(maintainer_name) + template_name: docker_images_ros2/create_ros_image.Dockerfile.em + template_packages: + - docker_templates + ros2_packages: + - ros-base + desktop: + base_image: @(user_name):@(ros2distro_name)-ros-base-@(os_code_name) + maintainer_name: @(maintainer_name) + template_name: docker_images_ros2/create_ros_image.Dockerfile.em + template_packages: + - docker_templates + ros2_packages: + - desktop + ros1-bridge: + base_image: @(user_name):@(ros2distro_name)-ros-base-@(os_code_name) + maintainer_name: @(maintainer_name) + template_name: docker_images_ros2/ros1_bridge/create_ros_ros1_bridge_image.Dockerfile.em + entrypoint_name: docker_images_ros2/ros1_bridge/ros_entrypoint.sh + template_packages: + - docker_templates + ros2_packages: + - ros1-bridge diff --git a/ros/crystal/ubuntu/bionic/platform.yaml b/ros/crystal/ubuntu/bionic/platform.yaml new file mode 100644 index 000000000..9bdb5dbb9 --- /dev/null +++ b/ros/crystal/ubuntu/bionic/platform.yaml @@ -0,0 +1,13 @@ +%YAML 1.1 +# ROS2 Dockerfile database +--- +platform: + os_name: ubuntu + os_code_name: bionic + rosdistro_name: melodic + ros2distro_name: crystal + user_name: ros + maintainer_name: + arch: amd64 + type: distribution + version: diff --git a/ros/crystal/ubuntu/bionic/ros-base/Dockerfile b/ros/crystal/ubuntu/bionic/ros-base/Dockerfile new file mode 100644 index 000000000..84a4db5a4 --- /dev/null +++ b/ros/crystal/ubuntu/bionic/ros-base/Dockerfile @@ -0,0 +1,8 @@ +# This is an auto generated Dockerfile for ros:ros-base +# generated from docker_images_ros2/create_ros_image.Dockerfile.em +FROM ros:crystal-ros-core-bionic +# install ros2 packages +RUN apt-get update && apt-get install -y \ + ros-crystal-ros-base=0.6.1-0* \ + && rm -rf /var/lib/apt/lists/* + diff --git a/ros/crystal/ubuntu/bionic/ros-core/Dockerfile b/ros/crystal/ubuntu/bionic/ros-core/Dockerfile new file mode 100644 index 000000000..43ca89999 --- /dev/null +++ b/ros/crystal/ubuntu/bionic/ros-core/Dockerfile @@ -0,0 +1,54 @@ +# This is an auto generated Dockerfile for ros:ros-core +# generated from docker_images_ros2/create_ros_core_image.Dockerfile.em +FROM ubuntu:bionic + +# setup timezone +RUN echo 'Etc/UTC' > /etc/timezone && \ + ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \ + apt-get update && apt-get install -q -y tzdata && rm -rf /var/lib/apt/lists/* + +# install packages +RUN apt-get update && apt-get install -q -y \ + dirmngr \ + gnupg2 \ + lsb-release \ + python3-pip \ + && rm -rf /var/lib/apt/lists/* + +# setup ros2 keys +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 + +# setup sources.list +RUN echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros2-latest.list + +# install bootstrap tools +RUN apt-get update && apt-get install --no-install-recommends -y \ + python3-rosdep \ + python3-rosinstall \ + python3-vcstools \ + && rm -rf /var/lib/apt/lists/* + +# setup environment +ENV LANG C.UTF-8 +ENV LC_ALL C.UTF-8 + +# bootstrap rosdep +ENV ROSDISTRO_INDEX_URL https://raw.githubusercontent.com/ros2/rosdistro/ros2/index.yaml +RUN rosdep init \ + && rosdep update + +# install python packages +RUN pip3 install -U \ + argcomplete + +# install ros2 packages +ENV ROS_DISTRO crystal +RUN apt-get update && apt-get install -y \ + ros-crystal-ros-core=0.6.1-0* \ + && rm -rf /var/lib/apt/lists/* + +# setup entrypoint +COPY ./ros_entrypoint.sh / + +ENTRYPOINT ["/ros_entrypoint.sh"] +CMD ["bash"] diff --git a/ros/crystal/ubuntu/bionic/ros-core/ros_entrypoint.sh b/ros/crystal/ubuntu/bionic/ros-core/ros_entrypoint.sh new file mode 100755 index 000000000..80f3ce3ef --- /dev/null +++ b/ros/crystal/ubuntu/bionic/ros-core/ros_entrypoint.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -e + +# setup ros2 environment +source "/opt/ros/$ROS_DISTRO/setup.bash" +exec "$@" diff --git a/ros/crystal/ubuntu/bionic/ros1-bridge/Dockerfile b/ros/crystal/ubuntu/bionic/ros1-bridge/Dockerfile new file mode 100644 index 000000000..ed678bd60 --- /dev/null +++ b/ros/crystal/ubuntu/bionic/ros1-bridge/Dockerfile @@ -0,0 +1,22 @@ +# This is an auto generated Dockerfile for ros:ros1-bridge +# generated from docker_images_ros2/ros1_bridge/create_ros_ros1_bridge_image.Dockerfile.em +FROM ros:crystal-ros-base-bionic + +# setup keys +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 + +# setup sources.list +RUN echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list + +ENV ROS1_DISTRO melodic +ENV ROS2_DISTRO crystal +# install ros2 packages +RUN apt-get update && apt-get install -y \ + ros-crystal-ros1-bridge=0.6.1-0* \ + && rm -rf /var/lib/apt/lists/* + +# setup entrypoint +COPY ./ros_entrypoint.sh / + +ENTRYPOINT ["/ros_entrypoint.sh"] +CMD ["bash"] diff --git a/ros/crystal/ubuntu/bionic/ros1-bridge/hooks/post_push b/ros/crystal/ubuntu/bionic/ros1-bridge/hooks/post_push new file mode 100755 index 000000000..7fb608386 --- /dev/null +++ b/ros/crystal/ubuntu/bionic/ros1-bridge/hooks/post_push @@ -0,0 +1,14 @@ +#!/bin/bash +# http://windsock.io/automated-docker-image-builds-with-multiple-tags/ + +set -e + +# Parse image name for repo name +tagStart=$(expr index "$IMAGE_NAME" :) +repoName=${IMAGE_NAME:0:tagStart-1} + +# Tag and push image for each additional tag +for tag in crystal-ros1-bridge; do + docker tag $IMAGE_NAME ${repoName}:${tag} + docker push ${repoName}:${tag} +done diff --git a/ros/crystal/ubuntu/bionic/ros1-bridge/ros_entrypoint.sh b/ros/crystal/ubuntu/bionic/ros1-bridge/ros_entrypoint.sh new file mode 100755 index 000000000..71d942eda --- /dev/null +++ b/ros/crystal/ubuntu/bionic/ros1-bridge/ros_entrypoint.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e + +# unsetting ROS_DISTRO to silence ROS_DISTRO override warning +unset ROS_DISTRO +# setup ros1 environment +source "/opt/ros/$ROS1_DISTRO/setup.bash" + +# unsetting ROS_DISTRO to silence ROS_DISTRO override warning +unset ROS_DISTRO +# setup ros2 environment +source "/opt/ros/$ROS2_DISTRO/setup.bash" + +unset ROS1_DISTRO +unset ROS2_DISTRO + +exec "$@" diff --git a/ros/manifest.yaml b/ros/manifest.yaml index 37eeed8a4..781cc3aac 100644 --- a/ros/manifest.yaml +++ b/ros/manifest.yaml @@ -11,11 +11,17 @@ defaults: hook_names: post_push: .hooks/legacy/post_push.em - default: &DEFAULT - templates: &DEFAULT_TEMPLATES - images: .config/images.yaml.em - makefile: .config/Makefile.em - platform: .config/platform.yaml.em + default: &DEFAULT_ROS1 + templates: &DEFAULT_TEMPLATES_ROS1 + images: .config/ros1/images.yaml.em + makefile: .config/ros1/Makefile.em + platform: .config/ros1/platform.yaml.em + + default: &DEFAULT_ROS2 + templates: &DEFAULT_TEMPLATES_ROS2 + images: .config/ros2/images.yaml.em + makefile: .config/ros2/Makefile.em + platform: .config/ros2/platform.yaml.em default: &DEFAULT_LEGACY templates: &DEFAULT_TEMPLATES_LEGACY @@ -100,7 +106,7 @@ release_names: ubuntu: os_code_names: trusty: - <<: *DEFAULT + <<: *DEFAULT_ROS1 archs: - amd64 - arm32v7 @@ -128,7 +134,7 @@ release_names: ubuntu: os_code_names: trusty: - <<: *DEFAULT + <<: *DEFAULT_ROS1 archs: - amd64 - arm32v7 @@ -157,7 +163,7 @@ release_names: ubuntu: os_code_names: xenial: - <<: *DEFAULT + <<: *DEFAULT_ROS1 archs: - amd64 - arm32v7 @@ -183,7 +189,7 @@ release_names: debian: os_code_names: jessie: - <<: *DEFAULT + <<: *DEFAULT_ROS1 archs: - amd64 - arm64v8 @@ -207,7 +213,7 @@ release_names: ubuntu: os_code_names: xenial: - <<: *DEFAULT + <<: *DEFAULT_ROS1 archs: - amd64 - arm32v7 @@ -231,7 +237,7 @@ release_names: - "$release_name-perception" - "$release_name-perception-$os_code_name" zesty: - <<: *DEFAULT + <<: *DEFAULT_ROS1 archs: - amd64 tag_names: @@ -251,7 +257,7 @@ release_names: debian: os_code_names: stretch: - <<: *DEFAULT + <<: *DEFAULT_ROS1 archs: - amd64 - arm64v8 @@ -274,7 +280,7 @@ release_names: ubuntu: os_code_names: bionic: - <<: *DEFAULT + <<: *DEFAULT_ROS1 archs: - amd64 - arm32v7 @@ -301,7 +307,7 @@ release_names: debian: os_code_names: stretch: - <<: *DEFAULT + <<: *DEFAULT_ROS1 archs: - amd64 - arm64v8 @@ -318,6 +324,69 @@ release_names: perception: aliases: - "$release_name-perception-$os_code_name" + ardent: + eol: 2018-12 + os_names: + ubuntu: + os_code_names: + xenial: + rosdistro_name: kinetic + <<: *DEFAULT_ROS2 + archs: + - amd64 + - arm64v8 + tag_names: + 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" + bouncy: + eol: 2019-07 + os_names: + ubuntu: + os_code_names: + bionic: + rosdistro_name: melodic + <<: *DEFAULT_ROS2 + archs: + - amd64 + - arm64v8 + tag_names: + 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" + crystal: + eol: 2019-12 + os_names: + ubuntu: + os_code_names: + bionic: + rosdistro_name: melodic + <<: *DEFAULT_ROS2 + archs: + - amd64 + - arm64v8 + tag_names: + 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" meta: maintainers: - Tully Foote (@tfoote) @@ -435,3 +504,33 @@ hacks: <<: *DEFAULT_HOOKS desktop-full: <<: *DEFAULT_HOOKS + ardent: + os_names: + ubuntu: + os_code_names: + xenial: + tag_names: + desktop: + <<: *DEFAULT_HOOKS + ros1-bridge: + <<: *DEFAULT_HOOKS + bouncy: + os_names: + ubuntu: + os_code_names: + bionic: + tag_names: + desktop: + <<: *DEFAULT_HOOKS + ros1-bridge: + <<: *DEFAULT_HOOKS + crystal: + os_names: + ubuntu: + os_code_names: + bionic: + tag_names: + desktop: + <<: *DEFAULT_HOOKS + ros1-bridge: + <<: *DEFAULT_HOOKS diff --git a/ros/melodic/ubuntu/bionic/ros-core/Dockerfile b/ros/melodic/ubuntu/bionic/ros-core/Dockerfile index 835ce89c9..8b088ca98 100644 --- a/ros/melodic/ubuntu/bionic/ros-core/Dockerfile +++ b/ros/melodic/ubuntu/bionic/ros-core/Dockerfile @@ -2,11 +2,11 @@ # generated from docker_images/create_ros_core_image.Dockerfile.em FROM ubuntu:bionic +# setup timezone RUN echo 'Etc/UTC' > /etc/timezone && \ ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \ apt-get update && apt-get install -q -y tzdata && rm -rf /var/lib/apt/lists/* - # install packages RUN apt-get update && apt-get install -q -y \ dirmngr \ diff --git a/ros/ros b/ros/ros index c4511ff17..ac84e92b8 100644 --- a/ros/ros +++ b/ros/ros @@ -113,22 +113,22 @@ Directory: ros/lunar/debian/stretch/perception Tags: melodic-ros-core, melodic-ros-core-bionic Architectures: amd64, arm32v7, arm64v8 -GitCommit: 49d22242e02e9c541a9e85b657e1785617b6f470 +GitCommit: eaca344ae304c30254451da89bae328eb65ee385 Directory: ros/melodic/ubuntu/bionic/ros-core Tags: melodic-ros-base, melodic-ros-base-bionic, melodic, latest Architectures: amd64, arm32v7, arm64v8 -GitCommit: 49d22242e02e9c541a9e85b657e1785617b6f470 +GitCommit: eaca344ae304c30254451da89bae328eb65ee385 Directory: ros/melodic/ubuntu/bionic/ros-base Tags: melodic-robot, melodic-robot-bionic Architectures: amd64, arm32v7, arm64v8 -GitCommit: 49d22242e02e9c541a9e85b657e1785617b6f470 +GitCommit: eaca344ae304c30254451da89bae328eb65ee385 Directory: ros/melodic/ubuntu/bionic/robot Tags: melodic-perception, melodic-perception-bionic Architectures: amd64, arm32v7, arm64v8 -GitCommit: 49d22242e02e9c541a9e85b657e1785617b6f470 +GitCommit: eaca344ae304c30254451da89bae328eb65ee385 Directory: ros/melodic/ubuntu/bionic/perception ######################################## @@ -154,3 +154,54 @@ Architectures: amd64, arm64v8 GitCommit: 49d22242e02e9c541a9e85b657e1785617b6f470 Directory: ros/melodic/debian/stretch/perception + +################################################################################ +# Release: ardent + +######################################## +# Distro: ubuntu:xenial + +Tags: ardent-ros-core, ardent-ros-core-xenial +Architectures: amd64, arm64v8 +GitCommit: 9619e8b2fedc763707c07bd5568f2401bfc5b117 +Directory: ros/ardent/ubuntu/xenial/ros-core + +Tags: ardent-ros-base, ardent-ros-base-xenial, ardent +Architectures: amd64, arm64v8 +GitCommit: 9619e8b2fedc763707c07bd5568f2401bfc5b117 +Directory: ros/ardent/ubuntu/xenial/ros-base + + +################################################################################ +# Release: bouncy + +######################################## +# Distro: ubuntu:bionic + +Tags: bouncy-ros-core, bouncy-ros-core-bionic +Architectures: amd64, arm64v8 +GitCommit: 9619e8b2fedc763707c07bd5568f2401bfc5b117 +Directory: ros/bouncy/ubuntu/bionic/ros-core + +Tags: bouncy-ros-base, bouncy-ros-base-bionic, bouncy +Architectures: amd64, arm64v8 +GitCommit: 9619e8b2fedc763707c07bd5568f2401bfc5b117 +Directory: ros/bouncy/ubuntu/bionic/ros-base + + +################################################################################ +# Release: crystal + +######################################## +# Distro: ubuntu:bionic + +Tags: crystal-ros-core, crystal-ros-core-bionic +Architectures: amd64, arm64v8 +GitCommit: 9619e8b2fedc763707c07bd5568f2401bfc5b117 +Directory: ros/crystal/ubuntu/bionic/ros-core + +Tags: crystal-ros-base, crystal-ros-base-bionic, crystal +Architectures: amd64, arm64v8 +GitCommit: 9619e8b2fedc763707c07bd5568f2401bfc5b117 +Directory: ros/crystal/ubuntu/bionic/ros-base + diff --git a/ros2/source/Makefile b/ros/source/ros2/Makefile similarity index 100% rename from ros2/source/Makefile rename to ros/source/ros2/Makefile diff --git a/ros2/source/images.yaml.em b/ros/source/ros2/images.yaml.em similarity index 91% rename from ros2/source/images.yaml.em rename to ros/source/ros2/images.yaml.em index c6a17af49..edf37590f 100644 --- a/ros2/source/images.yaml.em +++ b/ros/source/ros2/images.yaml.em @@ -5,8 +5,8 @@ images: source: base_image: @(os_name):@(os_code_name) maintainer_name: @(maintainer_name) - template_name: docker_images/create_ros2_source_image.Dockerfile.em - entrypoint_name: docker_images/ros2_source_entrypoint.sh + template_name: docker_images_ros2/source/create_ros_image.Dockerfile.em + entrypoint_name: docker_images_ros2/source/ros_entrypoint.sh template_packages: - docker_templates upstream_packages: diff --git a/ros2/source/platform.yaml b/ros/source/ros2/platform.yaml similarity index 100% rename from ros2/source/platform.yaml rename to ros/source/ros2/platform.yaml diff --git a/ros2/source/source/Dockerfile b/ros/source/ros2/source/Dockerfile similarity index 88% rename from ros2/source/source/Dockerfile rename to ros/source/ros2/source/Dockerfile index ef649e5d2..96810c135 100644 --- a/ros2/source/source/Dockerfile +++ b/ros/source/ros2/source/Dockerfile @@ -1,12 +1,12 @@ # This is an auto generated Dockerfile for ros2:source -# generated from docker_images/create_ros2_source_image.Dockerfile.em +# generated from docker_images_ros2/source/create_ros_image.Dockerfile.em FROM ubuntu:bionic +# setup timezone RUN echo 'Etc/UTC' > /etc/timezone && \ ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \ apt-get update && apt-get install -q -y tzdata && rm -rf /var/lib/apt/lists/* - # install packages RUN apt-get update && apt-get install -q -y \ bash-completion \ @@ -24,8 +24,7 @@ RUN apt-get update && apt-get install -q -y \ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 # setup sources.list -RUN . /etc/os-release \ - && echo "deb http://repo.ros2.org/$ID/main `lsb_release -sc` main" > /etc/apt/sources.list.d/ros2-latest.list +RUN echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros2-latest.list # setup environment ENV LANG C.UTF-8 @@ -85,7 +84,7 @@ RUN colcon \ RUN cp /etc/skel/.bashrc ~/ # setup entrypoint -COPY ./ros2_source_entrypoint.sh / +COPY ./ros_entrypoint.sh / -ENTRYPOINT ["/ros2_source_entrypoint.sh"] +ENTRYPOINT ["/ros_entrypoint.sh"] CMD ["bash"] diff --git a/ros2/source/source/ros2_source_entrypoint.sh b/ros/source/ros2/source/ros_entrypoint.sh similarity index 100% rename from ros2/source/source/ros2_source_entrypoint.sh rename to ros/source/ros2/source/ros_entrypoint.sh diff --git a/ros2/.config/Makefile.em b/ros2/.config/Makefile.em deleted file mode 100644 index 2eceb3ab8..000000000 --- a/ros2/.config/Makefile.em +++ /dev/null @@ -1,28 +0,0 @@ -all: help - -help: - @echo "" - @echo "-- Help Menu" - @echo "" - @echo " 1. make build - build all images" - @echo " 2. make pull - pull all images" - @echo " 3. make clean - remove all images" - @echo "" - -build: - @docker build --tag=osrf/ros2:$release_name-ros-core ros-core/. - @docker build --tag=osrf/ros2:$release_name-ros-base ros-base/. - @docker build --tag=osrf/ros2:$release_name-desktop desktop/. - @docker build --tag=osrf/ros2:$release_name-ros1-bridge ros1-bridge/. - -pull: - @docker pull osrf/ros2:$release_name-ros-core - @docker pull osrf/ros2:$release_name-ros-base - @docker pull osrf/ros2:$release_name-desktop - @docker pull osrf/ros2:$release_name-ros1-bridge - -clean: - @docker rmi -f osrf/ros2:$release_name-ros-core - @docker rmi -f osrf/ros2:$release_name-ros-base - @docker rmi -f osrf/ros2:$release_name-desktop - @docker rmi -f osrf/ros2:$release_name-ros1-bridge diff --git a/ros2/ardent/ubuntu/xenial/Makefile b/ros2/ardent/ubuntu/xenial/Makefile deleted file mode 100644 index b2ba433fb..000000000 --- a/ros2/ardent/ubuntu/xenial/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -all: help - -help: - @echo "" - @echo "-- Help Menu" - @echo "" - @echo " 1. make build - build all images" - @echo " 2. make pull - pull all images" - @echo " 3. make clean - remove all images" - @echo "" - -build: - @docker build --tag=osrf/ros2:ardent-ros-core ros-core/. - @docker build --tag=osrf/ros2:ardent-ros-base ros-base/. - @docker build --tag=osrf/ros2:ardent-desktop desktop/. - @docker build --tag=osrf/ros2:ardent-ros1-bridge ros1-bridge/. - -pull: - @docker pull osrf/ros2:ardent-ros-core - @docker pull osrf/ros2:ardent-ros-base - @docker pull osrf/ros2:ardent-desktop - @docker pull osrf/ros2:ardent-ros1-bridge - -clean: - @docker rmi -f osrf/ros2:ardent-ros-core - @docker rmi -f osrf/ros2:ardent-ros-base - @docker rmi -f osrf/ros2:ardent-desktop - @docker rmi -f osrf/ros2:ardent-ros1-bridge diff --git a/ros2/ardent/ubuntu/xenial/desktop/Dockerfile b/ros2/ardent/ubuntu/xenial/desktop/Dockerfile deleted file mode 100644 index bc9fcf0dd..000000000 --- a/ros2/ardent/ubuntu/xenial/desktop/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -# This is an auto generated Dockerfile for ros2:desktop -# generated from docker_images/create_ros2_image.Dockerfile.em -FROM osrf/ros2:ardent-ros-base -# install ros2 packages -RUN apt-get update && apt-get install -y \ - ros-ardent-desktop \ - && rm -rf /var/lib/apt/lists/* - diff --git a/ros2/ardent/ubuntu/xenial/ros-base/Dockerfile b/ros2/ardent/ubuntu/xenial/ros-base/Dockerfile deleted file mode 100644 index d62443ead..000000000 --- a/ros2/ardent/ubuntu/xenial/ros-base/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -# This is an auto generated Dockerfile for ros2:ros-base -# generated from docker_images/create_ros2_image.Dockerfile.em -FROM osrf/ros2:ardent-ros-core -# install ros2 packages -RUN apt-get update && apt-get install -y \ - ros-ardent-ros-base \ - && rm -rf /var/lib/apt/lists/* - diff --git a/ros2/ardent/ubuntu/xenial/ros-core/Dockerfile b/ros2/ardent/ubuntu/xenial/ros-core/Dockerfile deleted file mode 100644 index 78b665ad3..000000000 --- a/ros2/ardent/ubuntu/xenial/ros-core/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -# This is an auto generated Dockerfile for ros2:ros-core -# generated from docker_images/create_ros2_core_image.Dockerfile.em -FROM ubuntu:xenial - -# install packages -RUN apt-get update && apt-get install -q -y \ - dirmngr \ - gnupg2 \ - lsb-release \ - python3-pip \ - && rm -rf /var/lib/apt/lists/* - - -# setup ros2 keys -RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 - -# setup sources.list -RUN . /etc/os-release \ - && echo "deb http://repo.ros2.org/$ID/main `lsb_release -sc` main" > /etc/apt/sources.list.d/ros2-latest.list - -# setup environment -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 - -ENV ROS_DISTRO ardent - -# install python packages -RUN pip3 install -U \ - argcomplete - -# install ros2 packages -RUN apt-get update && apt-get install -y \ - ros-ardent-ros-core \ - && rm -rf /var/lib/apt/lists/* - -# setup entrypoint -COPY ./ros2_entrypoint.sh / - -ENTRYPOINT ["/ros2_entrypoint.sh"] -CMD ["bash"] diff --git a/ros2/bouncy/ubuntu/bionic/Makefile b/ros2/bouncy/ubuntu/bionic/Makefile deleted file mode 100644 index 487026723..000000000 --- a/ros2/bouncy/ubuntu/bionic/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -all: help - -help: - @echo "" - @echo "-- Help Menu" - @echo "" - @echo " 1. make build - build all images" - @echo " 2. make pull - pull all images" - @echo " 3. make clean - remove all images" - @echo "" - -build: - @docker build --tag=osrf/ros2:bouncy-ros-core ros-core/. - @docker build --tag=osrf/ros2:bouncy-ros-base ros-base/. - @docker build --tag=osrf/ros2:bouncy-desktop desktop/. - @docker build --tag=osrf/ros2:bouncy-ros1-bridge ros1-bridge/. - -pull: - @docker pull osrf/ros2:bouncy-ros-core - @docker pull osrf/ros2:bouncy-ros-base - @docker pull osrf/ros2:bouncy-desktop - @docker pull osrf/ros2:bouncy-ros1-bridge - -clean: - @docker rmi -f osrf/ros2:bouncy-ros-core - @docker rmi -f osrf/ros2:bouncy-ros-base - @docker rmi -f osrf/ros2:bouncy-desktop - @docker rmi -f osrf/ros2:bouncy-ros1-bridge diff --git a/ros2/bouncy/ubuntu/bionic/desktop/Dockerfile b/ros2/bouncy/ubuntu/bionic/desktop/Dockerfile deleted file mode 100644 index 3749ab2c2..000000000 --- a/ros2/bouncy/ubuntu/bionic/desktop/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -# This is an auto generated Dockerfile for ros2:desktop -# generated from docker_images/create_ros2_image.Dockerfile.em -FROM osrf/ros2:bouncy-ros-base -# install ros2 packages -RUN apt-get update && apt-get install -y \ - ros-bouncy-desktop \ - && rm -rf /var/lib/apt/lists/* - diff --git a/ros2/bouncy/ubuntu/bionic/ros-base/Dockerfile b/ros2/bouncy/ubuntu/bionic/ros-base/Dockerfile deleted file mode 100644 index b422655a4..000000000 --- a/ros2/bouncy/ubuntu/bionic/ros-base/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -# This is an auto generated Dockerfile for ros2:ros-base -# generated from docker_images/create_ros2_image.Dockerfile.em -FROM osrf/ros2:bouncy-ros-core -# install ros2 packages -RUN apt-get update && apt-get install -y \ - ros-bouncy-ros-base \ - && rm -rf /var/lib/apt/lists/* - diff --git a/ros2/create_dockerfiles.py b/ros2/create_dockerfiles.py deleted file mode 100755 index 5e9f6797d..000000000 --- a/ros2/create_dockerfiles.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env python3 - -import os -import sys -import yaml - -try: - from cStringIO import StringIO -except ImportError: - from io import StringIO -from em import Interpreter - -from docker_templates.argparse import DockerfileArgParser -from docker_templates.create import create_files -from docker_templates.collections import OrderedLoad -from docker_templates.packages import expandPackages - -def main(argv=sys.argv[1:]): - """Create Dockerfiles for images from platform and image yaml data""" - - # Create the top-level parser - parser = DockerfileArgParser( - description="Generate the 'Dockerfile's for the base docker images") - parser.set() - args = parser.parse(argv) - - # Read platform params - with open(args.platform, 'r') as f: - # use safe_load instead load - platform = yaml.safe_load(f)['platform'] - - # Read image params using platform params - images_yaml = StringIO() - try: - interpreter = Interpreter(output=images_yaml) - interpreter.file(open(args.images, 'r'), locals=platform) - images_yaml = images_yaml.getvalue() - except Exception as e: - print("Error processing %s" % args.images) - raise - finally: - interpreter.shutdown() - interpreter = None - # Use ordered dict - images = OrderedLoad(images_yaml, yaml.SafeLoader)['images'] - - # For each image tag - for image in images: - - # Get data for image - data = dict(images[image]) - data['tag_name'] = image - - # Add platform params - data.update(platform) - - # Apply package distro/version formatting - expandPackages(data) - - # Get path to save Docker file - dockerfile_dir = os.path.join(args.output, image) - if not os.path.exists(dockerfile_dir): - os.makedirs(dockerfile_dir) - data['dockerfile_dir'] = dockerfile_dir - - # generate Dockerfile - create_files(data) - -if __name__ == '__main__': - main() diff --git a/ros2/create_dockerfolders.py b/ros2/create_dockerfolders.py deleted file mode 100755 index 58a25635a..000000000 --- a/ros2/create_dockerfolders.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env python3 - -import sys -import yaml - -import create_dockerfiles - -from docker_templates.argparse import DockerfolderArgParser -from docker_templates.collections import OrderedLoad -from docker_templates.folders import populate_paths - - -def main(argv=sys.argv[1:]): - """Create Dockerfolders for images from manafest yaml data""" - - # Create the top-level parser - parser = DockerfolderArgParser( - description="Generate the Dockerfolders for the base docker images") - parser.set() - args = parser.parse(argv) - - # Read manifest params - with open(args.manifest, 'r') as f: - manifest = OrderedLoad(f, yaml.SafeLoader) - - # Populate all paths from the manifest - populate_paths(manifest, args, create_dockerfiles) - - -if __name__ == '__main__': - main() diff --git a/ros2/create_dockerlibrary.py b/ros2/create_dockerlibrary.py deleted file mode 100755 index e3fac7935..000000000 --- a/ros2/create_dockerlibrary.py +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python3 - -import git -import os -import sys -import yaml - -import ros_buildfarm.templates - -from docker_templates.argparse import DockerlibraryArgParser -from docker_templates.collections import OrderedLoad -from docker_templates.create import expand_template_prefix_path, create_dockerlibrary -from docker_templates.library import parse_manifest - -default_template_prefix_path = ros_buildfarm.templates.template_prefix_path -PWD = os.path.dirname(os.path.abspath(__file__)) - - -def main(argv=sys.argv[1:]): - """Create Dockerlibrary for images from manafest yaml data""" - - # Create the top-level parser - parser = DockerlibraryArgParser( - description="Generate the 'Dockerlibrary for the base docker images") - parser.set() - args = parser.parse(argv) - - # Read manifest params - with open(args.manifest, 'r') as f: - manifest = OrderedLoad(f, yaml.SafeLoader) - - # Create a git diff for the current repo - repo = git.Repo(os.path.join(PWD, '..')) # , odbt=git.GitCmdObjectDB) - - # Parse the manifest - repo_name = os.path.basename(PWD) - manifest = parse_manifest(manifest, repo, repo_name) - - # Flattin manifest data - data = {**manifest, **manifest['meta']} - - # Create Docker Library - template_name = data['template_name'] - template_packages = data['template_packages'] - expand_template_prefix_path(template_packages) - create_dockerlibrary(template_name, data, args.output) - - -if __name__ == '__main__': - main() diff --git a/ros2/manifest.yaml b/ros2/manifest.yaml deleted file mode 100644 index 945d47cd7..000000000 --- a/ros2/manifest.yaml +++ /dev/null @@ -1,70 +0,0 @@ -%YAML 1.1 -# ROS2 Dockerfolder manifest ---- -defaults: - - default_hooks: &DEFAULT_HOOKS - hook_names: - post_push: .hooks/post_push.em - - default: &DEFAULT - templates: &DEFAULT_TEMPLATES - images: .config/images.yaml.em - makefile: .config/Makefile.em - platform: .config/platform.yaml.em - -release_names: - ardent: - eol: 2018-12 - os_names: - ubuntu: - os_code_names: - xenial: - rosdistro_name: kinetic - <<: *DEFAULT - archs: - - amd64 - tag_names: - ros-core: - aliases: - - "$release_name-ros-core" - ros-base: - aliases: - - "$release_name-ros-base" - desktop: - aliases: - - "$release_name-desktop" - ros1-bridge: - aliases: - - "$release_name-ros1-bridge" - bouncy: - eol: 2019-07 - os_names: - ubuntu: - os_code_names: - bionic: - rosdistro_name: melodic - <<: *DEFAULT - archs: - - amd64 - tag_names: - ros-core: - aliases: - - "$release_name-ros-core" - ros-base: - aliases: - - "$release_name-ros-base" - desktop: - aliases: - - "$release_name-desktop" - ros1-bridge: - aliases: - - "$release_name-ros1-bridge" - -meta: - maintainers: - - Tully Foote (@tfoote) - template_name: docker_library/ros2.em - template_packages: - - docker_templates - repo_url: https://github.com/osrf/docker_images.git diff --git a/ros2/ros2 b/ros2/ros2 deleted file mode 100644 index 3d2128f3a..000000000 --- a/ros2/ros2 +++ /dev/null @@ -1,56 +0,0 @@ -Maintainers: Tully Foote (@tfoote) -GitRepo: https://github.com/osrf/docker_images.git - -################################################################################ -# Release: ardent - -######################################## -# Distro: ubuntu:xenial - -Tags: ardent-ros-core -Architectures: amd64 -GitCommit: e1efe9d2d35af87c9135801a9a3d64fd2e7e16d3 -Directory: ros2/ardent/ubuntu/xenial/ros-core - -Tags: ardent-ros-base -Architectures: amd64 -GitCommit: e1efe9d2d35af87c9135801a9a3d64fd2e7e16d3 -Directory: ros2/ardent/ubuntu/xenial/ros-base - -Tags: ardent-desktop -Architectures: amd64 -GitCommit: e1efe9d2d35af87c9135801a9a3d64fd2e7e16d3 -Directory: ros2/ardent/ubuntu/xenial/desktop - -Tags: ardent-ros1-bridge -Architectures: amd64 -GitCommit: e1efe9d2d35af87c9135801a9a3d64fd2e7e16d3 -Directory: ros2/ardent/ubuntu/xenial/ros1-bridge - - -################################################################################ -# Release: bouncy - -######################################## -# Distro: ubuntu:bionic - -Tags: bouncy-ros-core -Architectures: amd64 -GitCommit: e1efe9d2d35af87c9135801a9a3d64fd2e7e16d3 -Directory: ros2/bouncy/ubuntu/bionic/ros-core - -Tags: bouncy-ros-base -Architectures: amd64 -GitCommit: e1efe9d2d35af87c9135801a9a3d64fd2e7e16d3 -Directory: ros2/bouncy/ubuntu/bionic/ros-base - -Tags: bouncy-desktop -Architectures: amd64 -GitCommit: e1efe9d2d35af87c9135801a9a3d64fd2e7e16d3 -Directory: ros2/bouncy/ubuntu/bionic/desktop - -Tags: bouncy-ros1-bridge -Architectures: amd64 -GitCommit: e1efe9d2d35af87c9135801a9a3d64fd2e7e16d3 -Directory: ros2/bouncy/ubuntu/bionic/ros1-bridge -