Celery + Docker + Django无法运行asynchronous作业

我是芹菜和docker工人,我有问题。 我有以下结构的Django项目:

generic generic celery.py ... web tasks.py

通用/ celery.py:

 from __future__ import absolute_import, unicode_literals import os from celery import Celery import logging logger = logging.getLogger("Celery") os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'generic.settings') app = Celery('generic') app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks() 

networking/ tasks.py:

 from __future__ import absolute_import, unicode_literals from django.conf import settings from generic.celery import app @app.task def foo(): ... 

泊坞窗,compose.yml:

 version: '3.0' services: db: image: postgres web: build: . command: python3 manage.py runserver 0.0.0.0:8000 volumes: - .:/src ports: - "8000:8000" depends_on: - db redis: image: redis:latest container_name: rd01 ports: - '6379:6379' celery: build: . container_name: cl01 command: celery worker --app=app.tasks volumes: - ..:/src links: - db - redis 

当我运行我的应用程序ModuleNotFound被引发

 ModuleNotFoundError: No module named 'app.tasks' 

我也试图写在docker-compose.yml中:

 command: celery worker --app=generic.tasks 

我收到了

 AttributeError: module 'generic.tasks' has no attribute 'celery' 

我也试过:

 command: celery worker --app=web.tasks 

和:

 ModuleNotFoundError: No module named 'web' 

Dockerfile

 FROM python:3 ENV PYTHONUNBUFFERED 1 ENV APP_USER user ENV APP_ROOT /src RUN groupadd -r ${APP_USER} \ && useradd -r -m \ --home-dir ${APP_ROOT} \ -s /usr/sbin/nologin \ -g ${APP_USER} ${APP_USER} WORKDIR ${APP_ROOT} RUN apt-get update && apt-get -y install postgresql ADD config/requirements.txt . RUN pip install -r requirements.txt ADD . /src/ USER ${APP_USER} ADD . ${APP_ROOT} 

我也曾尝试将一个模块作为包含parameter passing给Celery对象

谁能告诉我这是什么问题? 我发现了许多类似的post,但没有答案没有帮助