Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python docker cron作业上没有输出_Python_Docker_Cron_Python 3.8 - Fatal编程技术网

python docker cron作业上没有输出

python docker cron作业上没有输出,python,docker,cron,python-3.8,Python,Docker,Cron,Python 3.8,我一直在尝试在docker容器中设置一个简单的cron作业。当我构建并运行作业时,没有错误,但没有记录任何内容。如果进入容器,我可以看到crontab(即crontab-l)并运行文件(pythontest.py)。Idk查看计划作业运行时缺少的内容。Idk,如果它正在运行,并且我的日志位置错误,或者它根本没有运行 Dockerfile FROM python:3.8.8 RUN apt-get update && apt-get -y install cron vim WORK

我一直在尝试在docker容器中设置一个简单的cron作业。当我构建并运行作业时,没有错误,但没有记录任何内容。如果进入容器,我可以看到crontab(即crontab-l)并运行文件(pythontest.py)。Idk查看计划作业运行时缺少的内容。Idk,如果它正在运行,并且我的日志位置错误,或者它根本没有运行

Dockerfile

FROM python:3.8.8
RUN apt-get update && apt-get -y install cron vim
WORKDIR /app
COPY crontab /etc/cron.d/crontab
COPY test.py /app/test.py
RUN chmod 0644 /etc/cron.d/crontab
RUN /usr/bin/crontab /etc/cron.d/crontab

# run crond as main process of container
CMD ["cron", "-f"]

克朗塔布

* * * * * python /app/test.py > /proc/1/fd/1 2>/proc/1/fd/2
# new line
test.py

print('test')

我想稍微调整一下就复制您的设置:我用一个简单的
echo>/crontest.txt
替换了您的python脚本。它按预期工作。该文件在docker容器内创建,每分钟追加一行。 这只剩下一个问题:为什么
python/app/test.py>/proc/1/fd/12>/proc/1/fd/2
的行为不同于
echo>/crontest.txt

Dockerfile:

FROM python:3.8.8
RUN apt-get update && apt-get -y install cron vim
WORKDIR /app
COPY crontab /etc/cron.d/crontab
RUN chmod 0644 /etc/cron.d/crontab
RUN /usr/bin/crontab /etc/cron.d/crontab

# run crond as main process of container
CMD ["cron", "-f"]
crontab:

* * * * * echo "test" >> /crontest.txt 
# new line
  • 构建docker镜像
    docker构建--标签竞赛。
  • 运行docker容器
    docker运行-n crontest容器竞赛
  • 将exec放入正在运行的容器
    docker exec-it crontest container bash
  • /crontest.txt的输出内容
    cat/crontest.txt
    (您还可以检查并查看crontab是否正在运行
    top

  • 如果我将您的输出与它进行比较,您的cronjob似乎缺少句号(******而不是类似30 5**3),我刚刚意识到上面的链接是德语。你可以看一看。你错过这节课是什么意思?我认为我的crontab具有正确的格式?请查看终端输出(此处)[如果我正确理解它
    crontab-l
    则打印出cronjob,前面有其“编码”周期(例如“0 5**1”),但在您的示例中是一个“***”是打印的,这似乎不是一个有效的周期啊,我想*****每分钟都在运行作业。至少这是我测试时的目的。