2025年1月11日 星期六

Dockerfile 的詳細說明與備註

內容說明與步驟分析

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 的存在性。

如需更多調整建議或有特定需求,請提供詳細指引!


沒有留言:

張貼留言

dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt Docker 映像介紹

 dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt Docker 映像介紹 1. 基本概述 名稱: dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt 維護者: Dorowu 用途: 提供基於 Ub...