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