From 9bff33608e6a0c0887e7525822f75f83e92cd43b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=B8=D0=B8=D0=BB=20=D0=93=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=B0=D1=80=D1=8C?= Date: Mon, 18 May 2026 18:11:05 +1000 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20Docker=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/AMENT_IGNORE | 0 docker/jazzy/ros-base/Dockerfile | 24 +++++++++++++ docker/jazzy/ros-core/Dockerfile | 45 +++++++++++++++++++++++++ docker/jazzy/ros-core/ros_entrypoint.sh | 5 +++ 4 files changed, 74 insertions(+) create mode 100644 docker/AMENT_IGNORE create mode 100644 docker/jazzy/ros-base/Dockerfile create mode 100644 docker/jazzy/ros-core/Dockerfile create mode 100644 docker/jazzy/ros-core/ros_entrypoint.sh diff --git a/docker/AMENT_IGNORE b/docker/AMENT_IGNORE new file mode 100644 index 0000000..e69de29 diff --git a/docker/jazzy/ros-base/Dockerfile b/docker/jazzy/ros-base/Dockerfile new file mode 100644 index 0000000..be50216 --- /dev/null +++ b/docker/jazzy/ros-base/Dockerfile @@ -0,0 +1,24 @@ +FROM evilfisru/ros:jazzy-core-noble + +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/* + +RUN rosdep init && \ + rosdep update --rosdistro $ROS_DISTRO + +RUN colcon mixin add default \ + https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml && \ + colcon mixin update && \ + colcon metadata add default \ + https://raw.githubusercontent.com/colcon/colcon-metadata-repository/master/index.yaml && \ + colcon metadata update + +RUN apt-get update && apt-get install -y --no-install-recommends \ + ros-jazzy-ros-base \ + && rm -rf /var/lib/apt/lists/* diff --git a/docker/jazzy/ros-core/Dockerfile b/docker/jazzy/ros-core/Dockerfile new file mode 100644 index 0000000..deeebe4 --- /dev/null +++ b/docker/jazzy/ros-core/Dockerfile @@ -0,0 +1,45 @@ +FROM ubuntu:noble + +ARG TIMEZONE=Etc/UTC + +# Timezone +RUN echo "${TIMEZONE}" > /etc/timezone && \ + ln -s /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && \ + apt-get update && \ + apt-get install -q -y --no-install-recommends tzdata && \ + rm -rf /var/lib/apt/lists/* + +# Базовые утилиты +RUN apt-get update && apt-get install -q -y --no-install-recommends \ + curl \ + dirmngr \ + gnupg2 \ + && rm -rf /var/lib/apt/lists/* + + +# Ключ и стабильный репозиторий ROS2 +RUN set -eux; \ + key='C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654'; \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \ + mkdir -p /usr/share/keyrings; \ + gpg --batch --export "$key" > /usr/share/keyrings/ros2-archive-keyring.gpg; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME" + +RUN echo "deb [ signed-by=/usr/share/keyrings/ros2-archive-keyring.gpg ] \ + http://packages.ros.org/ros2/ubuntu noble main" \ + > /etc/apt/sources.list.d/ros2.list + +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 +ENV ROS_DISTRO=jazzy + +RUN apt-get update && apt-get install -y --no-install-recommends \ + ros-jazzy-ros-core \ + && rm -rf /var/lib/apt/lists/* + +COPY ./ros_entrypoint.sh / +RUN chmod +x /ros_entrypoint.sh +ENTRYPOINT ["/ros_entrypoint.sh"] +CMD ["bash"] \ No newline at end of file diff --git a/docker/jazzy/ros-core/ros_entrypoint.sh b/docker/jazzy/ros-core/ros_entrypoint.sh new file mode 100644 index 0000000..4bac5f8 --- /dev/null +++ b/docker/jazzy/ros-core/ros_entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -e + +source "/opt/ros/$ROS_DISTRO/setup.bash" -- +exec "$@" \ No newline at end of file