Files
ROS2_learn/docker/Dockerfile
T
2026-08-03 18:09:35 +08:00

51 lines
2.2 KiB
Docker

# =============================================================================
# Dockerfile —— ROS2 Humble 开发环境的镜像定义。
#
# 基础镜像:osrf/ros:humble-desktop
# 这是 OSRF(Robotis/Open Source Robotics Foundation)官方维护的 ROS2
# 桌面版镜像,内含:
# - ROS2 Humble 完整运行时(rclcpp/rclpy/ros2 CLI/DDS 默认 fastdds)
# - rviz2 / rqt / gazebo 等桌面工具
# - colcon / rosdep 等构建工具
#
# 在它之上我们再加:
# - python3-colcon-common-extensions:colcon 的 Python 插件
# - python3-pip + colcon-argcomplete :命令补全 (Ros2 CLI tab 补全)
# - nano / curl :调试常用工具
# =============================================================================
# FROM:基础镜像。也可选 osrf/ros:humble-desktop-full 或 ros:humble-ros-base。
FROM osrf/ros:humble-desktop
# DEBIAN_FRONTEND=noninteractive:
# 容器里 apt 不再弹出交互式提示,CI/Docker 必备。
ENV DEBIAN_FRONTEND=noninteractive
# ROS_DISTRO:环境里 source /opt/ros/<distro>/setup.bash 时用到的版本标记。
ENV ROS_DISTRO=humble
# WORKSPACE:容器内统一的工作空间根目录。
ENV WORKSPACE=/root/ros2_ws
# RUN apt-get update && install ...:
# 一次性安装 colcon / pip / nano / curl。
# --no-install-recommends 可减小体积,这里为了图片完整不解开。
# 最后清理 /var/lib/apt/lists/* 以减小镜像层大小。
RUN apt-get update && apt-get install -y \
python3-colcon-common-extensions \
python3-pip \
nano \
curl \
&& rm -rf /var/lib/apt/lists/*
# pip 升级 colcon-argcomplete,提供 ros2 / colcon 命令的 Bash 自动补全。
RUN pip3 install -U colcon-argcomplete colcon-common-extensions
# 写 ~/.bashrc:每次 bash 启动自动 source ROS2 + colcon 补全。
RUN echo 'source /opt/ros/humble/setup.bash' >> /root/.bashrc && \
echo 'source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash' >> /root/.bashrc
# WORKDIR:之后所有 RUN / CMD 默认在此目录下执行;同时 docker exec 默认落在这里。
WORKDIR ${WORKSPACE}
# 默认命令:起 bash。docker exec 会覆盖,所以这里只用于 `docker run` 场景。
CMD ["bash"]