Django-crontab не выполняет задания на контейнере Docker

Я работаю над этим всю неделю, и, похоже, не понимаю, что я упускаю. Проблема проста, у меня есть контейнер, в котором запущена платформа на Django, и мне нужно создать Cronjob для небольшой задачи, я создал тестовый запрос, который выполняется каждую минуту и просто печатает лог для проверки, но он не работает, хотя он устанавливает cron, добавляет cronjobs, запускает службу cron, и я могу видеть их в crontab, они просто никогда не срабатывают.

Когда я только начинал, у меня был запущен Cron в одном экземпляре, но после прочтения этого Question я обнаружил, что мне нужно разделить его на 2 экземпляра, поскольку, очевидно, запущенный Django влиял на службу cron, поэтому, следуя этому, вот как я располагаю свои файлы:

docker-compose.yml

version: '3'

services:

    auth:
        build:
            context: ./
            dockerfile: ./devops/Dockerfile
            args:
                [Bunch of parameters]
        container_name: auth
        volumes:
            - ./project:/app
        ports:
            - 8000:8000
        environment:
            [Bunch of parameters]
        command: python manage.py runserver 0.0.0.0:8000

    cron:
        build:
            context: ./
            dockerfile: ./devops/Dockerfile
            args:
                [Bunch of parameters]
        container_name: cron
        volumes:
            - ./project:/app
        environment:
            [Bunch of parameters]
        command: cron -f

Dockerfile

FROM python:3.8

ENV PYTHONUNBUFFERED 1

WORKDIR /app

COPY ./devops/requirements.txt .

COPY ./project .

# COPY ./.env .

RUN apt-get update

RUN apt-get -y install cron

RUN cp ./.env . || echo "file not found"

RUN pip install -r requirements.txt

#Set permission to entrypoint.sh
RUN chmod +x entrypoint.sh

# start web server
ENTRYPOINT ["./entrypoint.sh"]
CMD ["gunicorn", "-b", "0.0.0.0:8000", "project.wsgi:application", "--workers=5"]

entrypoint.sh

#!/bin/sh

# Set up scheduled jobs, if this is the cron container.
if [ "$1" = cron ]; then
    service cron start
    python ./manage.py crontab add
    service cron stop
fi

# Run whatever command we got passed.
exec "$@"

settings.py

CRONJOBS = [
    ('*/1 * * * *', 'apps.coupons.cron.test'),
]

cron.py

import logging

logger = logging.getLogger(__name__)

def test():
    logger.warning('Hello World')
    logger.debug('Hello World')
    logger.info('Hello World')
    logger.error('Hello World')
    logger.critical('Hello World')
    print("Hello World")
    return "Finished"

Здесь вы видите, что cron был добавлен, и что cron запущен, и что выполнение cronjob вручную работает.

Job added

Cron is running

По-прежнему, не имеет значения, как долго я жду, не похоже, что Cronjob запускается автоматически каждую минуту (я проверяю это с помощью file.log, который я установил в опциях логгера settings.py). Что я делаю неправильно или чего не хватает, чтобы заставить cron работать?

Вернуться на верх