Как запустить Celery через Docker

Пишу сайт на Django, появилась потребность в асинхронных задачах, взялся за Celery. На локальном сервере всё работает корректно, но столкнулся с проблемой при переносе.

При запуске worker'а на боевом сервере через Докер выскакивает ошибка: celery -A crm_transfer wokrer -l info

Usage: celery [OPTIONS] COMMAND [ARGS]...

Error: Invalid value for '-A' / '--app':
Unable to load celery application.
The module crm_transfer was not found.

Вот код:

docker-compose.yml

celery:
  container_name: 'avihovalot.celery'
  build : .

  command: celery -A crm_transfer worker -l INFO
  volumes:
    - .:/app
  links:
    - redis
  depends_on:
    - redis
    - django

celery.py

import os
from celery import Celery
from celery.schedules import crontab


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

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

init.py

from .celery import app as celery_app

__all__ = ('celery_app', )

settings.py

REDIS_HOST = '0.0.0.0'
REDIS_PORT = '6379'
CELERY_BROKER_URL = 'redis://' + REDIS_HOST + ':' + REDIS_PORT + '/0'
CELERY_RESULT_BACKEND = 'redis://' + REDIS_HOST + ':' + REDIS_PORT + '/0'

Структура:

crm_transfer:
    -crm_transfer:
        -init.py
        -setting.py
        -celery.py
    -api:
        -tasks.py

Dockerfile

FROM python:3.8

ENV PYTHONDONTWRITEBYTECODE 1 ENV TZ=Europe/Kiev

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN apt-get update
RUN apt-get install -y gcc g++ cmake clang python3-dev python-dev 
python3- 
pip nano \
bpython3 postgresql libgmp10-dev build-essential libssl-dev libffi-dev 
ca-certificates supervisor

RUN python -m pip install --upgrade pip
RUN python -m pip install setuptools cython
COPY ./requirements.txt /requirements.txt
RUN python -m pip install -r /requirements.txt
RUN python -m pip install uvicorn[standard] websockets
RUN python -m pip install pgcli
#RUN daphne -b 0.0.0.0 -p 8008 crm_transfer.asgi:channel_layer
USER root
EXPOSE 9000 8008 8001

Не понимаю, почему не находит воркер, ведь и в нужной директории нахожусь, и код, вроде, правильный... За сегодня уже весь гугл перелазил - ничего( Буду очень благодарен за помощь)

celery==5.1.0


Ответы (0 шт):