构建一个 docker 镜像 ros2 ,当尝试运行时。在 dockerfile 中安装/setup.bash 无效

Posted

技术标签:

【中文标题】构建一个 docker 镜像 ros2 ,当尝试运行时。在 dockerfile 中安装/setup.bash 无效【英文标题】:build a docker image ros2 , when try tu run . install/setup.bash in dockerfile no works 【发布时间】:2020-03-05 12:30:05 【问题描述】:

我有下一个问题:

我尝试用ros2构建一个docker镜像,其中下载了一个代码包,它将使用colcon构建方法构建。

但是当我试图跑到最后的时候。 install / setup.bash 对我不起作用。

我已经尝试将其放入脚本并将其复制到 dockerfile 但它不起作用

任何想法

我把 docker 文件放在这里

FROM osrf/ros:dashing-desktop

WORKDIR /home

COPY mobilidad.sh .
RUN bash mobilidad.sh


ENV ROS2_WS cleanmyway/test_ws
RUN mkdir -p $ROS2_WS/src/demo_py
COPY ./ $ROS2_WS/src/demo_py

WORKDIR $ROS2_WS

SHELL ["/bin/bash", "-c"]
RUN colcon build
RUN . install/setup.bash

注意:mobilidad.sh 是一个从 github 下载 de 代码的脚本,可以正常工作

【问题讨论】:

我不知道哪个部分不起作用。你能分享一下错误信息吗? 我尝试在 docker 中构建一个 ros2 包,但最后一个命令 install/setup.bash 不起作用,当尝试运行代码时,我收到此错误“找不到包”,我尝试: 我尝试: - 将命令作为脚本插入 dockerfile 但不起作用。 - 在 dockerfile 中运行 de 命令但不工作。 你能传递 docker build 的全部输出吗? 【参考方案1】:

我想我设法找到了解决方案,

按如下方式构建 dockerfile:

FROM osrf/ros:dashing-desktop
WORKDIR /home
COPY mobilidad.sh . 
RUN bash mobilidad.sh

ENV ROS2_WS cleanmyway/test_ws
RUN mkdir -p $ROS2_WS

WORKDIR $ROS2_WS

RUN colcon build
RUN echo "source install/setup.bash" >> /opt/ros/dashing/setup.bash

当我运行 ros2 命令时工作正常

但无论如何感谢您的帮助。 :) 注意:我不确定更好的形式是否适合我

【讨论】:

以上是关于构建一个 docker 镜像 ros2 ,当尝试运行时。在 dockerfile 中安装/setup.bash 无效的主要内容,如果未能解决你的问题,请参考以下文章

企业运维实战--最全Docker学习笔记1.Docker简介安装部署镜像构建Dockerfile详解镜像构建镜像优化本地私有仓库搭建

Linux企业运维——Docker安装部署与镜像构建

04-docker系列-commit构建自定义镜像

05-docker系列-使用dockerfile构建镜像

06-docker系列-使用dockerfile构建nginxredis镜像

07-docker系列-使用dockerfile构建pythonjenkins镜像