在docker中运行crontab。 Django的

时间:2017-09-14 14:32:31

标签: python django cron

抱歉我的英文。我创建了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

2 个答案:

答案 0 :(得分:1)

我最近在将 Django 项目移动到 docker-compose 环境时遇到了这个问题。

以下是在基于 Python3.9(和一些 Ubuntu 发行版)的 Nginx Unit 对我有用的内容:

  1. 必须在 Dockerfile 的某处安装并启动 cron。

    apt install cron -y
    
  2. 然后你需要开始它(我不确定这一步,最坏的情况是什么都不会发生)。

    service cron start
    
  3. 运行 django crontab

    python manage.py crontab add
    
  4. 最后一步显示作者没有正在运行

    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