# ============================================================================= # 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//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"]