当前位置: 首页 > 知识库问答 >
问题:

Docker中的Cron作业不起作用-python应用程序

郭麒
2023-03-14

Cron作业中的内容似乎没有被执行,或者在保存日志时有问题。让我给你介绍一下我的档案:

克龙塔卜

* * * * * python /bin/wrapper.py > /var/log/somelogfile.txt 2>&1

我没有使用Ubuntu:20.04,而是使用image和安装python的附加层。我不能和你分享这张照片,因为这是私人照片。

import time
print ("Hello World!")
time.sleep(2)
FROM ubuntu:20.04

RUN apt-get update && \
    apt-get install -y cron busybox

COPY crontab /opt
COPY wrapper.py /bin/wrapper.py
RUN crontab /opt/crontab

CMD busybox syslogd -C; cron -L 2 -f

仅供参考,我可以直接从正在运行的docker(docker中的-it模式;/bin/bash)运行以下命令:python/bin/wrapper.py>/var/log/somelogfile.txt2>&1并创建带有“hello world”的文件。

但不是Cron Job。

共有1个答案

微生昌胤
2023-03-14

即使您使用的是Ubuntu映像,默认情况下也没有安装python,所以您需要安装它。改用这个修改过的dockerfile:

FROM ubuntu:20.04

RUN apt-get update && \
    apt-get install -y cron busybox
RUN apt-get install -y python3

COPY crontab /opt
COPY wrapper.py /bin/wrapper.py
RUN crontab /opt/crontab

CMD busybox syslogd -C; cron -L 2 -f

另外修改crontab命令,使用户python3而不是Python2:

* * * * * python3 /bin/wrapper.py > /var/log/somelogfile.txt 2>&1
 类似资料:
  • 问题内容: 我有一个非常简单的命令,可以作为命令或bash脚本独立运行,但是当我将其放在crontab中时却不能 有下面一行 我试图将脚本的网址更改为没有运气 我什至尝试直接在cron中运行脚本 没有运气,任何帮助表示赞赏。 编辑 我也看不到文件中的任何错误 问题答案: 您的命令说它需要“伪终端并以交互模式运行”(-it标志),而cron不会连接到任何TTY。 尝试将您的docker exec命令

  • 问题内容: 我想以分离模式在docker容器中运行python cron作业。我的设置如下: 我的python脚本是test.py 我的cron文件是my-crontab 而我的Dockerfile是 这种方法潜在的问题是什么?还有其他方法,它们的优缺点是什么? 问题答案: 我在尝试使cron作业在docker容器中运行时遇到的几个问题是: Docker容器中的时间不是UTC的本地时间; dock

  • 这种方法的潜在问题是什么?是否还有其他方法,它们的利弊是什么?

  • 问题内容: 我有这样的计划工作: 如果我在终端中运行它,它将运行,但是什么也不输出。如果我传递了错误的方法名称,它将成功运行。如果我传递了错误的类名,则会输出网站404错误。 我也有一个将“ en”添加到URL中的路由,例如 这可能是问题吗? 我的config.php设置是: 问题答案: 通过CLI(命令行界面)为cron- jobs准备CodeIgniter 2.x的步骤: 1: 创建根文件的副

  • 问题内容: 我正在使用和。 我能够正确安装,但无法启动默认VM。 我试图按照此处给出的说明进行操作,但仍然出现错误。我尚未在系统上启用。 我该如何解决这个问题? 问题答案: 您的docker-machine默认计算机似乎发生了一些问题。 要恢复,请执行以下操作: 接下来,打开virtualbox GUI并确保没有与该旧“默认” VM相对应的VM,以防万一。如果有,请从那里手动将其删除。 现在,再次