pee*_*eer 7 python cron docker
我想在 docker 容器中通过 cron 重复调用一个脚本,但是当我从一次性执行切换到通过 cron 执行时,官方 python 镜像似乎突然找不到 python。
Dockerfile:
FROM python:3.7-slim
COPY main.py /home/main.py
#A: works
CMD [ "python", "/home/main.py" ]
#B: doesn't work
#RUN apt-get update && apt-get -y install -qq --force-yes cron
#COPY hello-cron /etc/cron.d/hello-cron
#CMD ["cron", "-f"]
Run Code Online (Sandbox Code Playgroud)
主要.py
import time
for i in range(90000):
print(i)
time.sleep(5000)
Run Code Online (Sandbox Code Playgroud)
你好-cron:
* * * * * root python /home/main.py > /proc/1/fd/1 2> /proc/1/fd/2
#
Run Code Online (Sandbox Code Playgroud)
当我在 Dockerfile 中将 A 切换为 B 时,错误消息是:/bin/sh: 1: python: not found
谢谢大家的快速回复!添加PATH=/usr/local/bincron 文件解决了我的问题。
PATHCron 没有像普通登录 shell 那样设置环境变量,因此python无法找到。如果您指定Python可执行文件的完整路径,例如替换python为/usr/bin/python(或Python可执行文件的任何路径),它应该可以工作。或者,您可以PATH在 Cron 配置文件中显式设置环境变量以包含可以找到 Python 的目录。
| 归档时间: |
|
| 查看次数: |
5391 次 |
| 最近记录: |