Django 属性错误:';模块';对象没有属性';芹菜';当docker写作时
我想在Docker上开始一个项目。docker compose up控制台发出以下命令后:Django 属性错误:';模块';对象没有属性';芹菜';当docker写作时,django,python-2.7,redis,docker-compose,celery,Django,Python 2.7,Redis,Docker Compose,Celery,我想在Docker上开始一个项目。docker compose up控制台发出以下命令后: celery_redis_1 | Traceback (most recent call last): celery_redis_1 | File "/usr/local/bin/celery", line 11, in <module> celery_redis_1 | sys.exit(main()) celery_redis_1 | File "/usr/loca
celery_redis_1 | Traceback (most recent call last):
celery_redis_1 | File "/usr/local/bin/celery", line 11, in <module>
celery_redis_1 | sys.exit(main())
celery_redis_1 | File "/usr/local/lib/python2.7/site-packages/celery/__main__.py", line 16, in main
celery_redis_1 | _main()
celery_redis_1 | File "/usr/local/lib/python2.7/site-packages/celery/bin/celery.py", line 322, in main
celery_redis_1 | cmd.execute_from_commandline(argv)
celery_redis_1 | File "/usr/local/lib/python2.7/site-packages/celery/bin/celery.py", line 496, in execute_from_commandline
celery_redis_1 | super(CeleryCommand, self).execute_from_commandline(argv)))
celery_redis_1 | File "/usr/local/lib/python2.7/site-packages/celery/bin/base.py", line 273, in execute_from_commandline
celery_redis_1 | argv = self.setup_app_from_commandline(argv)
celery_redis_1 | File "/usr/local/lib/python2.7/site-packages/celery/bin/base.py", line 479, in setup_app_from_commandline
celery_redis_1 | self.app = self.find_app(app)
celery_redis_1 | File "/usr/local/lib/python2.7/site-packages/celery/bin/base.py", line 501, in find_app
celery_redis_1 | return find_app(app, symbol_by_name=self.symbol_by_name)
celery_redis_1 | File "/usr/local/lib/python2.7/site-packages/celery/app/utils.py", line 370, in find_app
celery_redis_1 | found = sym.celery
celery_redis_1 | AttributeError: 'module' object has no attribute 'celery'
My docker-compose.yml:
version: "3"
services:
web:
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8080"
links:
- celery_redis
- redis
redis:
image: redis
command: redis-server
ports:
- "6379:6379"
celery_redis:
image: celery_redis
command: celery worker --app=email_mp3_converter.tasks
links:
- redis
我的Dockerfile:
FROM python:2.7.10
ENV DJANGO_SETTINGS_MODULE email_mp3_converter.settings
RUN pip install --upgrade pip
ADD requirements.txt /email_mp3_converter/requirements.txt
RUN pip install -r /email_mp3_converter/requirements.txt
ADD . /email_mp3_converter
CMD python /email_mp3_converter/manage.py runserver 0.0.0.0:8080
My requirements.txt:
Django==1.11
requests==2.19.1
youtube_dl==2018.6.19
django-redis==4.9.0
django-registration==2.4.1
djangorestframework==3.8.2
youtube-dl==2018.6.19
celery==4.2.0
django_celery_beat
芹菜档案:
from __future__ import absolute_import
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'email_mp3_converter.settings')
app = Celery('email_mp3_converter', broker='amqp://guest@localhost//')
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))
我做错了什么?如何修复?提前感谢您的帮助我遇到了完全相同的问题。 当我执行死刑的时候
docker-compose run web bash
# Inside
cd /code/ && celery -A app worker -l info
比它工作得好,但不是与码头工人组成
docker-compose.yml文件中的音量设置似乎不正确。
我把它改成了
command: bash -c "cd /code/ && celery -A app beat -l info"
volumes:
- ./:/code
错误消失了。我认为解决这个问题的方法是检查docker文件中设置的WORKDIR以及芹菜图像的docker-compose.yml文件中使用的音量。很难给出“在所有情况下都能工作”的解决方案
请注意,您应该首先通过登录docker的shell来检查芹菜是否可以食用
希望这有助于缩小问题的范围
command: bash -c "cd /code/ && celery -A app beat -l info"
volumes:
- ./:/code