相关疑难解决方法(0)

在docker中运行cron python作业

我想在分离模式下在docker容器内运行python cron作业.我的设置如下:

我的python脚本是test.py

  #!/usr/bin/env python
  import datetime
  print "Cron job has run at %s" %datetime.datetime.now()
Run Code Online (Sandbox Code Playgroud)

我的cron文件是my-crontab

* * * * * /test.py > /dev/console
Run Code Online (Sandbox Code Playgroud)

我的Dockerfile是

FROM ubuntu:latest
RUN apt-get update && apt-get install -y software-properties-common python-software-properties && apt-get update

RUN apt-get install -y python cron
ADD my-crontab /
ADD test.py /
RUN chmod a+x test.py

RUN crontab /my-crontab
ENTRYPOINT cron -f
Run Code Online (Sandbox Code Playgroud)

这种方法有哪些潜在的问题?还有其他方法,它们的优点和缺点是什么?

python cron docker

48
推荐指数
8
解决办法
4万
查看次数

在 docker 中通过 cron 运行时`/bin/sh: 1: python: not found`

我想在 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 …

python cron docker

7
推荐指数
1
解决办法
5391
查看次数

标签 统计

cron ×2

docker ×2

python ×2