从 python 脚本内部运行 docker 在启动时不起作用

所以我有一个设置为在启动时运行的简单 python 脚本。该脚本理想地运行一个 webhook,然后在收到 POST 请求时运行一个 docker 容器。当我运行这个脚本时,它运行得很好,但是当我把它放在我的 crontab 中时,它似乎突然不起作用,我无法完全弄清楚为什么。我将脚本设置为在接收到成功的 post 方法时将消息设置为墙,所以我知道这不是问题,因为每当我发送 POST 时我都可以看到墙消息。它似乎并没有真正启动容器,无论我是否告诉它在后台运行,通常是使用 subprocess.Popen 或使用 subprocess.call,shell 为真或假。


        subprocess.call(["echo PULLING APP | wall"], shell=True)

        subprocess.call([". [pathtoscript], shell=True)

这是 .py 的摘录。请注意,在计算机完全启动之前我不会测试脚本,以确保在 docker 服务启动或类似的东西之前我不会以某种方式运行它,这可能有点有用。剧本:


#!/bin/sh

docker run --name [app] -p 80:80 --rm --mount type=bind,source=/home/dev/mongodb.pass,target=/app/mongodb.pass [pathtoimage]



弑天下
浏览 260回答 1
1回答

BIG阳

好的,所以我似乎已经解决了这个问题,方法是确保我在 shell 脚本中使用 docker 的绝对路径which docker
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python