內容說明與步驟分析
1. 基本設置
FROM dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt
LABEL maintainer "tysontest001@gmail.com"
FROM:基於 dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt 映像,這是一個 Ubuntu 18.04(Bionic)桌面環境的 Docker 映像,並內建 VNC 支援。
LABEL:提供維護者信息,便於追溯。
2. 設置非交互模式
ENV DEBIAN_FRONTEND noninteractive
禁用交互模式,以便在 Docker 構建過程中避免安裝包時的提示。
3. 設置 APT 資源與密鑰
RUN apt-get update && apt-get install -q -y \
dirmngr \
gnupg2 \
lsb-release \
&& rm -rf /var/lib/apt/lists/*
RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
RUN apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
添加 ROS 軟體源:這裡使用 ROS 官方的包源,以便後續安裝 ROS。
密鑰設置:添加密鑰以驗證 ROS 軟體包。
4. 安裝 ROS Melodic
RUN apt update
RUN apt-get install -y ros-melodic-desktop-full
安裝 ROS Melodic 的完整桌面版,包含核心功能與 Gazebo 等模擬器。
5. ROS 設定:
RUN apt-get update && apt-get install -y python-rosdep
RUN rosdep init && rosdep update
安裝 rosdep:rosdep 是 ROS 的依賴管理工具,用於安裝與配置 ROS 所需的系統依賴。
初始化並更新 rosdep 的數據庫。
6. 安裝開發工具與依賴:
RUN apt-get install -y git wget curl nano mercurial python-pip
RUN apt-get install -y python-rosinstall python-rosinstall-generator python-wstool build-essential
工具包:安裝一些必要的工具,如 git、wget、curl 和 nano。
ROS 工具鏈:包括 rosinstall 和 wstool,用於管理工作區。
7. 設定 shell 環境:
RUN /bin/bash -c "echo 'export HOME=/home/ubuntu' >> /root/.bashrc"
RUN /bin/bash -c "echo 'source /opt/ros/melodic/setup.bash' >> /root/.bashrc"
RUN cp /root/.bashrc /home/ubuntu/.bashrc
RUN /bin/bash -c "source /home/ubuntu/.bashrc"
設置環境變數:配置 ROS 環境的初始化腳本,以便在容器內使用 ROS 工具時,自動加載相關設置。
8. 安裝 VS Code 和 Python 插件:
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
RUN install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
RUN sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
RUN apt-get install -y apt-transport-https
RUN apt-get update
#RUN apt-get install -y code
#RUN pip install pylint
安裝 VS Code 的軟體包源,但實際安裝步驟被註解,可能是為了避免與其他工具衝突。
9. 安裝 Catkin:
RUN apt-get install -y ros-melodic-catkin python-catkin-tools
安裝 Catkin 工具,用於建立和管理 ROS 工作空間。
10. 複製模型:
RUN mkdir -p /home/ubuntu/.gazebo/
COPY models /home/ubuntu/.gazebo/models
建立 Gazebo 的模型目錄,並將本地的 models 資料夾複製到容器內。
11. 設定工作目錄:
RUN mkdir -p ROAST
COPY lib/curiosity_mars_rover_description ROAST/
建立名為 ROAST 的工作目錄,並複製 lib/curiosity_mars_rover_description 到容器內。
需要注意的事項
#文件路徑正確性:
#確保 models 和 lib/curiosity_mars_rover_description 目錄存在於構建上下文中,否則 COPY 指令會失敗。
#VS Code 安裝步驟被註解:如果需要安裝,解除相關指令的註解。
#容器用戶環境:環境變數與 .bashrc 文件的配置需要確認,確保 ROS 的環境正確加載。
#容器用戶權限: /home/ubuntu 的目錄權限應正確設置,避免運行中出現權限錯誤。
建議改進
合併 RUN 指令:
合併多個 RUN 指令以減少 Docker 層數,提升構建效率。
例如:
dockerfile
Copy code
RUN apt-get update && apt-get install -y \
dirmngr gnupg2 lsb-release git wget curl nano mercurial python-pip \
python-rosinstall python-rosinstall-generator python-wstool build-essential
完整測試模型路徑:
在構建過程中驗證 models 和 lib 的存在性。
如需更多調整建議或有特定需求,請提供詳細指引!
沒有留言:
張貼留言