Cron 未运行启动 python 脚本的 docker 容器
Cron not runing a docker container which starts a python script
我有一个 docker 容器,可以加载 python 图像。然后我 运行 一个 python 脚本通过 Dockerfile
复制到 docker 容器,像这样:
docker run --net=host mybuiltimage /bin/bash -c "python src/runscript.py"
此命令直接从终端运行。为了让它通过 cron 工作并输出到日志文件,我做了一些更改:
* * * * * cd /dir/to/dockerfile && /usr/bin/docker run --net=host mybuiltimage /bin/bash -c "python src/runscript.py" >> /dir/to/log/mylog.log 2>&1
这里的变化是我将目录更改为 Dockerfile 目录并明确给出 docker 命令的完整路径。
此 cronjob 仍未执行。 mylog.log
未在给定目录中创建。 这有什么问题?
创建脚本文件可能会有用,比如 /dir/to/script/myscript.sh
:
#!/bin/bash
/usr/bin/docker run --net=host mybuiltimage /bin/bash -c "python src/runscript.py" >> /dir/to/log/mylog.log 2>&1
您应该可以测试脚本文件:
$ bash /dir/to/script/myscript.sh
$ cat /dir/to/log/mylog.log
然后在cron文件中:
* * * * * bash /dir/to/script/myscript.sh
我有一个 docker 容器,可以加载 python 图像。然后我 运行 一个 python 脚本通过 Dockerfile
复制到 docker 容器,像这样:
docker run --net=host mybuiltimage /bin/bash -c "python src/runscript.py"
此命令直接从终端运行。为了让它通过 cron 工作并输出到日志文件,我做了一些更改:
* * * * * cd /dir/to/dockerfile && /usr/bin/docker run --net=host mybuiltimage /bin/bash -c "python src/runscript.py" >> /dir/to/log/mylog.log 2>&1
这里的变化是我将目录更改为 Dockerfile 目录并明确给出 docker 命令的完整路径。
此 cronjob 仍未执行。 mylog.log
未在给定目录中创建。 这有什么问题?
创建脚本文件可能会有用,比如 /dir/to/script/myscript.sh
:
#!/bin/bash
/usr/bin/docker run --net=host mybuiltimage /bin/bash -c "python src/runscript.py" >> /dir/to/log/mylog.log 2>&1
您应该可以测试脚本文件:
$ bash /dir/to/script/myscript.sh
$ cat /dir/to/log/mylog.log
然后在cron文件中:
* * * * * bash /dir/to/script/myscript.sh