`django-cron==0.5.0` 无法 运行 在 `python:2.7` 和 `python:2.7-slim-buster` 中安排的 cron 作业 docker 图片

`django-cron==0.5.0` is not able to run scheduled cron jobs in `python:2.7` and `python:2.7-slim-buster` docker image

我正在分享我的 GitHub 存储库 link 供您参考。 https://github.com/deepenpatel19/test_django_cron

这里,我搭建了一个项目来测试Docker中的cron scheduler。 但是,调度程序没有按时 运行。我必须手动 运行。

Django 依赖项:

Django==1.8 
django-cron==0.5.0 
uwsgi==2.0.18 
django-common-helpers==0.9.2

Docker配置:

FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
RUN apt-get update && apt-get purge nodejs && apt-get install -y --no-install-recommends gcc g++ default-libmysqlclient-dev libssl-dev libjpeg62-turbo-dev zlib1g-dev curl wget apt-transport-https gnupg2 nginx supervisor cron vim&& wget https://nodejs.org/dist/v6.4.0/node-v6.4.0-linux-x64.tar.xz && apt-get install -y xz-utils && tar -C /usr/local --strip-components 1 -xJf node-v6.4.0-linux-x64.tar.xz && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && apt-get update && apt-get install -y yarn && sed '/st_mysql_options options;/a unsigned int reconnect;' /usr/include/mysql/mysql.h -i.bkp && apt-get clean && pip install Django==1.8 django-cron==0.5.0 uwsgi==2.0.18 django-common-helpers==0.9.2&& rm -rf /var/lib/apt/lists/*  && rm -rf /root/.cache
ADD . /code/
RUN useradd --no-create-home nginx
RUN rm /etc/nginx/sites-enabled/default
RUN touch /var/log/cron.log
COPY nginx.conf /etc/nginx/
COPY django-site-nginx.conf /etc/nginx/conf.d/
COPY uwsgi.ini /etc/uwsgi/
COPY supervisord.conf /etc/supervisor/
WORKDIR /code
EXPOSE 8081
CMD ["/usr/bin/supervisord"]

您需要设置您的 crontab 并启动 cron 服务。为了测试你的每分钟 cron,我会添加一个 django.cron 到你的项目的根目录,内容如下:

* * * * * /usr/local/bin/python /code/manage.py runcrons >> /code/cron.log 2>&1

然后,在您的 Dockerfile 中添加:

COPY django.cron /etc/cron.d/
RUN crontab /etc/cron.d/django.cron

并将命令更改为:

CMD /usr/sbin/cron && /usr/bin/supervisord