关于在docker上运行Openvino示例的问题



我已经从Openvino 2021.4_dev的基于dockerfile构建了docker容器。此外,添加一些库需要运行我的python脚本,该脚本是基于Openvino dockerfile的。

接受是当我运行容器时,它应该开始运行python脚本。

ENTRYPOINT ["python3","-U","main.py"]

但似乎有些库没有找到,因为我忘记了源setupvar.sh

所以我尝试了RUN,shell和直接,它不起作用。带有shell选项的容器以"在setupvar.sh处卡住"消息启动。

我观察到一件事,无论运行python脚本的shell是什么,setupvar.sh都应该在同一个shell上。但作为docker,每个CMD、SHELL或ENTRYPOINT都在调用时使用单独的SHELL执行。

我该如何解决这个问题?如何在同一个shell上获取setupvar.sh和脚本,以便在容器启动后运行脚本。

注意:我不希望它是交互式的解决方案,这不是必需的,因为所有的东西都像容器启动的一样运行

您可以永久设置环境变量,如设置环境变量中所示。每次打开新的终端时,它都会自动设置环境变量。

我已经解决了这个问题,创建了单独的shell脚本,并从docker文件中运行它,该文件首先在bash shell中执行setupar.sh,然后在同一个shell 上运行python脚本

shell脚本:run.sh

#!/bin/bash
source /opt/intel/openvino_2021/bin/setupvars.sh
exec /usr/bin/python3 -u "/app/main.py"

添加docker文件末尾:

ENTRYPOINT ["/app/run.sh" ]

相关内容

  • 没有找到相关文章

最新更新