无法设置/替代docker入口点来执行两个命令

时间:2019-11-02 21:06:31

标签: python docker ubuntu docker-compose

当我启动docker映像时,我试图设置/覆盖docker入口点,但出现意外行为

方案1(无效)

  1. Docker运行命令-> docker run --rm -it --privileged --net = host  python3.6 -m CameraServerBasler.pylon_video& python3.6 -m CameraServerBasler.server
  2. 输出-> /usr/bin/python3.6:查找模块时出错 “ CameraServerBasler.server”的规范(ModuleNotFoundError: 没有名为“ CameraServerBasler”的模块)

方案2(正在运行)

如果我在docker image bash中执行相同的命令,一切都会按预期运行

  1. Docker运行命令-> docker run --rm -it --privileged --net = host --entrypoint = / bin / bash
  2. 在docker映像内执行的命令-> python3.6 -m CameraServerBasler.server和python3.6 -m CameraServerBasler.pylon_video
  3. 输出->两台服务器(模块)均按预期方式启动并运行(服务器 和pylon_video)

Docker镜像-> ubuntu:18.04

我在docker run命令中缺少某些内容吗?

1 个答案:

答案 0 :(得分:0)

我已经可以使用sh脚本解决此问题,但仍然不清楚为什么不能使用方法#1

方法1无效

在docker文件中声明的入口点

ENTRYPOINT ["python3.6", "-m", "CameraServerBasler.server", "&", "python3.6", "-m", "CameraServerBasler.pylon_video"]

方法2有效

在docker文件中声明的入口点

ENTRYPOINT ["sh", "init.sh"]

init.sh文件内容

python3.6 -m CameraServerBasler.server & python3.6 -m CameraServerBasler.pylon_video