Docker ROS自动启动启动文件

Docker ROS自动启动启动文件,docker,dockerfile,ros,launch,Docker,Dockerfile,Ros,Launch,我开发了几个ROS软件包,我想把这些软件包放在docker容器中,因为一直安装所有ROS软件包都很乏味。因此,我创建了一个dockerfile,它使用一个基本的ROS映像,安装了所有必要的依赖项,复制了我的工作区,在docker容器中构建了工作区,并随后将所有内容来源化。您可以在此处找到docker文件: FROM ros:kinetic-ros-base RUN apt-get update && apt-get install locales RUN locale-gen

我开发了几个ROS软件包,我想把这些软件包放在docker容器中,因为一直安装所有ROS软件包都很乏味。因此,我创建了一个
dockerfile
,它使用一个基本的ROS映像,安装了所有必要的依赖项,复制了我的工作区,在docker容器中构建了工作区,并随后将所有内容来源化。您可以在此处找到docker文件:

FROM ros:kinetic-ros-base

RUN apt-get update && apt-get install locales
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8

RUN apt-get update && apt-get install -y \
    && rm -rf /var/likb/apt/lists/*

COPY . /catkin_ws/src/
WORKDIR /catkin_ws
RUN /bin/bash -c '. /opt/ros/kinetic/setup.bash; catkin_make'
RUN /bin/bash -c '. /opt/ros/kinetic/setup.bash; source devel/setup.bash'

CMD ["roslaunch", "master_launch sim_perception.launch"]
问题是:当我使用“run”命令运行docker容器时,docker似乎不知道我的新ROS工作区来源,因此它无法自动启动我的启动脚本。如果我使用“run-it bash”以bash脚本的形式运行docker容器,我可以再次获取工作区的源代码,然后
roslaunch
my
.launch
文件


那么,有人能告诉我如何正确编写
dockerfile
,以便在运行容器时自动启动
。启动
文件吗?谢谢

来自Docker文档

每个运行指令都是独立运行的,不会影响下一条指令,因此当您运行最后一行时,不会从ROS保存路径

您需要源代码
.bashrc
或首先使用
源代码
所需的每个环境


您可以将所需的一切(源命令和roslaunch命令)封装在
sh
文件中,然后在末尾运行该文件

解决了吗?我需要同样的信息。