【问题标题】:How to troubleshoot error coming from a container如何解决来自容器的错误
【发布时间】:2019-01-19 19:59:23
【问题描述】:

我第一次尝试创建一个 docker 容器来运行 ROS。我遇到了一个令人困惑的错误,我无法弄清楚如何解决问题

bash-3.2$ docker run -ti --name turtlebot3 rosdocker To run a command
as administrator (user "root"), use "sudo <command>". See "man
sudo_root" for details.

bash: /home/ros/catkin_ws/devel/setup.bash: No such file or directory

我正在使用这个 dockerfile 从 vscode 内部创建 rosdocker。我正在使用 Docker 插件并使用“构建映像”命令。这是 Dockerfile:

FROM ros:kinetic-robot-xenial

RUN apt-get update && apt-get install --assume-yes \sudo \
python-pip \
ros-kinetic-desktop-full \
ros-kinetic-turtlebot3 \
ros-kinetic-turtlebot3-bringup \
ros-kinetic-turtlebot3-description \
ros-kinetic-turtlebot3-fake \
ros-kinetic-turtlebot3-gazebo \
ros-kinetic-turtlebot3-msgs \
ros-kinetic-turtlebot3-navigation \
ros-kinetic-turtlebot3-simulations \
ros-kinetic-turtlebot3-slam \
ros-kinetic-turtlebot3-teleop

# install python packages
RUN pip install -U scikit-learn numpy scipy
RUN pip install --upgrade pip

# create non-root user
ENV USERNAME ros
RUN adduser --ingroup sudo --disabled-password --gecos "" --shell /bin/bash --home /home/$USERNAME $USERNAME
RUN bash -c 'echo $USERNAME:ros | chpasswd'
ENV HOME /home/$USERNAME
USER $USERNAME

# create catkin_ws
RUN mkdir /home/$USERNAME/catkin_ws
WORKDIR /home/$USERNAME/catkin_ws

# add catkin env
RUN echo 'source /opt/ros/kinetic/setup.bash' >> /home/$USERNAME/.bashrc
RUN echo 'source /home/$USERNAME/catkin_ws/devel/setup.bash' >> /home/$USERNAME/.bashrc

我不确定错误来自何处,也不知道如何调试或排除故障。我将不胜感激任何指针!

【问题讨论】:

  • 我想你一定是个sudoer。请试试这个sudo Docker user
  • 什么/谁提供了那个文件 /home/ros/catkin_ws/devel/setup.bash ?

标签: docker ros


【解决方案1】:

您正在创建一个用户 ros,然后在最后一行这样做:

运行 echo 'source /home/$USERNAME/catkin_ws/devel/setup.bash' >> /home/$USERNAME/.bashrc

很明显,系统将寻找“/home/ros/catkin_ws/devel/setup.bash”,它不是在 docker 文件中的任何位置创建的。

要么创建这个文件,或者如果你打算从主机挂载到 docker,然后运行 ​​

docker run -ti --name turtlebot3 rosdocker -v sourcevolume:destinationvolume

【讨论】:

  • 谢谢!一定是这样的。在这里面,这个源是容器外面的东西,而目的地是里面的,反之亦然?
  • 完全正确。检查您的情况所需的单个文件挂载:stackoverflow.com/questions/36549144/…
猜你喜欢
  • 2019-11-03
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2016-10-27
  • 2014-11-16
  • 2017-12-14
相关资源
最近更新 更多