Результаты Celery не обновляются после докеризации

В настоящее время я размещаю свое приложение Django на Docker. Я успешно докеризировал Django, gunicorn, nginx и Celery, однако когда я запускаю задачу Celery, хотя она выполняется (отображается в логах), результаты не сохраняются в моей базе данных.

Это работало до докеризации всего, так что это, вероятно, происходит из-за моих конфигураций docker, но мне не удалось найти, какая часть была неправильной/неполной.

Кроме того, я использую стандартную базу данных sqlite3 Django, поскольку мне не нужно хранить огромное количество данных.

Вот мой docker-compose.yml:

version: '3.8'

services:
  django_gunicorn:
    volumes:
      - db:/db.sqlite3
      - static:/static
      - media:/media
    env_file:
      - env
    build:
      context: .
    ports: 
      - "8000:8000"
    command: sh -c "python manage.py migrate && python manage.py collectstatic --no-input && gunicorn main.wsgi:application --bind 0.0.0.0:8000"

  nginx:
    build: ./nginx
    volumes:
      - static:/static
      - media:/media
    ports:
      - "80:80"
    depends_on:
      - django_gunicorn

  rabbitmq3:
    image: rabbitmq:3-alpine
    ports:
      - 5672:5672

  celery:
    restart: always
    build:
      context: .
    command: celery -A main worker -P eventlet -c 100 -l INFO
    env_file:
      - env
    depends_on:
      - rabbitmq3
      - django_gunicorn
    volumes:
      - db:/db.sqlite3

volumes:
  db:
  static:
  media:

Dockerfile

FROM python:3.10.5-alpine

ENV PYTHONUNBEFFERED = 1 

RUN pip install --upgrade pip

COPY ./requirements.txt .
RUN pip install -r requirements.txt
COPY ./src /app

WORKDIR /app

celery.py

import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'main.settings')

app = Celery('main')

app.config_from_object('django.conf:settings', namespace='CELERY')

app.autodiscover_tasks()

@app.task(bind=True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))

Может быть, это потому, что я использую sqlite3? Во время поиска решения я видел, что все используют PostgreSQL. Должен ли я перейти на PostgreSQL? Или что мне нужно изменить, чтобы получить результаты моих задач в моей базе данных ?

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