以下是基於 dorowu/ubuntu-desktop-lxde-vnc:focal-lxqt 的 Dockerfile 範例,
用於構建支持 ROS Noetic 的開發環境:
Dockerfile 範例:
# 使用 dorowu 提供的輕量級 Ubuntu 20.04 桌面環境作為基礎映像
FROM dorowu/ubuntu-desktop-lxde-vnc:focal-lxqt
# 設置維護者信息(可選)
LABEL maintainer="your_email@example.com"
# 設置非交互模式,避免安裝過程中提示
ENV DEBIAN_FRONTEND=noninteractive
# 更新系統並安裝必要工具
RUN apt-get update && apt-get install -y \
lsb-release \
gnupg2 \
curl \
wget \
nano \
build-essential \
python3-pip \
&& rm -rf /var/lib/apt/lists/*
# 添加 ROS 官方軟件源
RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# 添加 ROS 軟件源密鑰
RUN apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# 安裝 ROS Noetic 桌面完整版
RUN apt-get update && apt-get install -y ros-noetic-desktop-full
# 初始化 rosdep
RUN apt-get install -y python3-rosdep \
&& rosdep init \
&& rosdep update
# 安裝 ROS 開發工具
RUN apt-get install -y \
python3-rosinstall \
python3-rosinstall-generator \
python3-wstool \
python3-catkin-tools \
&& rm -rf /var/lib/apt/lists/*
# 配置環境變數,使 ROS 能在容器內正常使用
RUN echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
# 確保 ROS 環境對所有用戶可用
RUN echo "source /opt/ros/noetic/setup.bash" >> /etc/skel/.bashrc \
&& echo "source /opt/ros/noetic/setup.bash" >> /root/.bashrc
# 創建工作空間目錄
RUN mkdir -p /home/ubuntu/catkin_ws/src && \
chown -R ubuntu:ubuntu /home/ubuntu/catkin_ws
# 設置工作目錄為容器啟動時的默認目錄
WORKDIR /home/ubuntu/catkin_ws
# 設置默認用戶和環境
USER ubuntu
# 自動加載 ROS 環境
CMD ["bash", "-c", "source /opt/ros/noetic/setup.bash && /bin/bash"]
說明
基礎映像:
使用 dorowu/ubuntu-desktop-lxde-vnc:focal-lxqt 作為基礎映像,提供輕量級桌面環境和 VNC 支援。
ROS 軟件源:
添加 ROS 軟件源,並使用密鑰驗證。
安裝 ROS Noetic:
安裝 ros-noetic-desktop-full,包含 ROS 核心、Rviz、Gazebo 等常用功能。
初始化 rosdep:
使用 rosdep 自動解析和安裝系統依賴。
安裝開發工具:
包括 catkin 和 wstool,用於構建和管理 ROS 工作空間。
環境配置:
將 source /opt/ros/noetic/setup.bash 添加到 .bashrc,自動加載 ROS 環境。
工作空間設置:
創建默認的 ROS 工作空間 /home/ubuntu/catkin_ws,並設置工作目錄。
使用指導
構建映像
docker build -t ros-noetic-desktop .
運行容器
docker run -d \
-p 5901:5901 -p 6080:6080 \
--name ros_noetic \
ros-noetic-desktop
進入容器
docker exec -it ros_noetic bash
啟動 VNC
通過 VNC 客戶端連接:localhost:5901
使用 Web 瀏覽器連接:http://localhost:6080
擴展與自定義
安裝額外軟件:
如需使用特定工具(如 Gazebo 或 MoveIt),可以在 Dockerfile 中添加相應的安裝指令。
修改分辨率:
運行容器時設置分辨率:
docker run -d -e RESOLUTION=1920x1080 ros-noetic-desktop
共享目錄:
挂載宿主機目錄到容器中,便於文件共享:
docker run -v /host/path:/home/ubuntu/shared -it ros-noetic-desktop
沒有留言:
張貼留言