如何在正在运行的容器中执行 Roslaunch 命令

问题描述 投票:0回答:1

我正在尝试使用 Carla 运行汽车软件。 Autoware 在 Linux 机器上作为容器运行。现在启动容器后,当我想启动我的启动文件来启动 auotware 节点时,使用 roslaunch carla_autoware_agent carla_autoware_agent.launch 城镇:=Town04 synchronous_mode:=true

如果没有进入容器,我收到以下错误 OCI 运行时执行失败:执行失败:无法启动容器进程:执行:“roslaunch”:在 $PATH 中找不到可执行文件:未知

我确实尝试使用 docker exec 运行相同的命令,但仍然不起作用。

如何在 Linux 机器中运行 roslaunch 命令而不使用 shell 脚本进入容器。

docker containers ros
1个回答
0
投票

我知道距离这篇文章已经有一段时间了,但我遇到了类似的问题,解决它的方法是在 /usr/local/bin 中添加一个名为 rc.sh 的脚本

rc.sh的内容:

#! /bin/bash

source /opt/ros/melodic/setup.bash

roscore &

您可以在此处使用 roslaunch proj proj & 代替 roscore &,但请确保为您的项目提供 setup.bash 。

然后像平常一样运行你的 docker 镜像:

docker run -dit --all_other_options tag:1.1

接下来运行以下命令来执行脚本:

docker exec -i container_ID rc.sh

这是因为 docker 正在为我处理许多标志。这应该可以工作,而无需您进入容器。要获取 docker 容器中的脚本,您可以在 Dockerfile 中使用以下内容:

...
COPY ./rc.sh /usr/local/bin/
...

确保你的rc.sh与Dockerfile位于同一目录中,并确保它具有执行权限。

© www.soinside.com 2019 - 2024. All rights reserved.