我有一个使用Django和Celery的Python应用程序,我试图使用docker和docker compose运行,因为我还使用Redis和Dynamodb
问题是:
我不能同时执行WSGI和Celery服务,因为只有第一条指令可以正常工作。。在
version: '3.3'
services:
redis:
image: redis:3.2-alpine
volumes:
- redis_data:/data
ports:
- "6379:6379"
dynamodb:
image: dwmkerr/dynamodb
ports:
- "3000:8000"
volumes:
- dynamodb_data:/data
jobs:
build:
context: nubo-async-cfe-seces
dockerfile: Dockerfile
environment:
- REDIS_HOST=redisrvi
- PYTHONUNBUFFERED=0
- CC_DYNAMODB_NAMESPACE=None
- CC_DYNAMODB_ACCESS_KEY_ID=anything
- CC_DYNAMODB_SECRET_ACCESS_KEY=anything
- CC_DYNAMODB_HOST=dynamodb
- CC_DYNAMODB_PORT=8000
- CC_DYNAMODB_IS_SECURE=False
command: >
bash -c "celery worker -A tasks.async_service -Q dynamo-queue -E --loglevel=ERROR &&
uwsgi --socket 0.0.0.0:8080 --protocol=http --wsgi-file nubo_async/wsgi.py"
depends_on:
- redis
- dynamodb
volumes:
- .:/jobs
ports:
- "9090:8080"
volumes:
redis_data:
dynamodb_data:
有人有同样的问题吗?在
这是由@Satevg建议的docker组合,通过单独的容器运行Django和Celery应用程序。工作正常!在
您可以参考Saleor项目的
docker-compose
。我建议让celery
运行它的守护进程,只依赖redis
作为代理。请参阅docker-compose.yml文件的配置:另请参见从两个服务到
^{pr2}$redis
的连接是由environtment vatables
分别设置的,如common.env文件所示:相关问题 更多 >
编程相关推荐