【发布时间】:2020-08-14 05:49:41
【问题描述】:
我想在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"]
main.py
import time
for i in range(90000):
print(i)
time.sleep(5000)
你好-cron:
* * * * * root python /home/main.py > /proc/1/fd/1 2> /proc/1/fd/2
#
当我在 Dockerfile 中将 A 切换为 B 时,错误消息是:/bin/sh: 1: python: not found
感谢大家的快速回复!在 cron 文件中添加 PATH=/usr/local/bin 解决了我的问题。
【问题讨论】:
-
这能回答你的问题吗? How to get CRON to call in the correct PATHs
-
which python知道系统上python的绝对路径。