抱歉我的英文。我创建了docker文件。对于cron任务我使用此library,在我的本地测试所有工作,但现在我尝试使用docker并尝试在那里运行cron。但现在我有错误
no crontab for root
我的码头文件:
FROM python:3.6
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN apt-get update && apt-get install -y cron
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD python manage.py runserver 0.0.0.0:8000
RUN python manage.py crontab add
RUN python manage.py crontab show
我的要求
Django==1.11.4
django-filter==1.0.4
djangorestframework
Pillow
django-crontab
答案 0 :(得分:1)
我最近在将 Django 项目移动到 docker-compose 环境时遇到了这个问题。
以下是在基于 Python3.9(和一些 Ubuntu 发行版)的 Nginx Unit 对我有用的内容:
必须在 Dockerfile 的某处安装并启动 cron。
apt install cron -y
然后你需要开始它(我不确定这一步,最坏的情况是什么都不会发生)。
service cron start
运行 django crontab
python manage.py crontab add
最后一步显示作者没有正在运行
service cron restart
答案 1 :(得分:0)
也许django-crontab希望在添加内容之前存在crontab。您可以尝试先为root创建一个新的crontab。
RUN crontab <<< '# new crontab'
RUN python manage.py crontab add
RUN python manage.py crontab show