python docker cron作业上没有输出
我一直在尝试在docker容器中设置一个简单的cron作业。当我构建并运行作业时,没有错误,但没有记录任何内容。如果进入容器,我可以看到crontab(即crontab-l)并运行文件(pythontest.py)。Idk查看计划作业运行时缺少的内容。Idk,如果它正在运行,并且我的日志位置错误,或者它根本没有运行 Dockerfilepython 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
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运行-n crontest容器竞赛
docker exec-it crontest container bash
cat/crontest.txt
(您还可以检查并查看crontab是否正在运行top
)如果我将您的输出与它进行比较,您的cronjob似乎缺少句号(******而不是类似30 5**3),我刚刚意识到上面的链接是德语。你可以看一看。你错过这节课是什么意思?我认为我的crontab具有正确的格式?请查看终端输出(此处)[如果我正确理解它
crontab-l
则打印出cronjob,前面有其“编码”周期(例如“0 5**1”),但在您的示例中是一个“***”是打印的,这似乎不是一个有效的周期啊,我想*****每分钟都在运行作业。至少这是我测试时的目的。