Python 设置docker-compose.yml为django项目运行芹菜工人和芹菜节拍,以redis为代理
我已经使用django cookiecutter设置了django项目。项目脚手架非常好。我还选择了使用docker。现在我正努力让芹菜v4.0.x在整个设置中正常工作 这是我的Python 设置docker-compose.yml为django项目运行芹菜工人和芹菜节拍,以redis为代理,python,django,celery,docker-compose,Python,Django,Celery,Docker Compose,我已经使用django cookiecutter设置了django项目。项目脚手架非常好。我还选择了使用docker。现在我正努力让芹菜v4.0.x在整个设置中正常工作 这是我的docker compose.yml version: '2' volumes: postgres_data_dev: {} postgres_backup_dev: {} services: postgres: build: ./compose/postgres volumes:
docker compose.yml
version: '2'
volumes:
postgres_data_dev: {}
postgres_backup_dev: {}
services:
postgres:
build: ./compose/postgres
volumes:
- postgres_data_dev:/var/lib/postgresql/data
- postgres_backup_dev:/backups
environment:
- POSTGRES_USER=application
django:
build:
context: .
dockerfile: ./compose/django/development/Dockerfile
depends_on:
- postgres
environment:
- POSTGRES_USER=application
- USE_DOCKER=yes
volumes:
- .:/app
- /tmp/
links:
- postgres
- redis
expose:
- "8000"
env_file:
- ./dev.env
restart:
- "on-failure"
nginx:
build:
context: .
dockerfile: ./compose/nginx/development/Dockerfile
depends_on:
- django
ports:
- "0.0.0.0:80:80"
links:
- django
volumes_from:
- django
redis:
image: redis:latest
hostname: redis
celeryworker:
build:
context: .
dockerfile: ./compose/django/development/Dockerfile
env_file: ./dev.env
depends_on:
- postgres
- redis
command: celery -A application.taskapp worker -l INFO
restart: "on-failure"
celerybeat:
build:
context: .
dockerfile: ./compose/django/development/Dockerfile
env_file: ./dev.env
depends_on:
- postgres
- redis
command: celery -A application.taskapp beat -l INFO
老实说,我觉得celerybeat/celeryworker服务的配置似乎存在一些小问题。如果有人能指出这一点就好了
更新:
当我执行命令来运行容器时,我得到一个错误,说明找不到应用程序
更新
这是一个新的撰写文件,它消除了我撰写中的一些错误。在实现这一切的过程中,我还遇到了一个帖子,有人提到服务的订购也很重要。因此在新版本中,django被放在第一位
version: '2'
volumes:
postgres_data_dev: {}
postgres_backup_dev: {}
services:
django: &django
build:
context: .
dockerfile: ./compose/django/development/Dockerfile
depends_on:
- postgres
volumes:
- .:/app
- /tmp/
links:
- postgres
- redis
environment:
- POSTGRES_USER=application
- USE_DOCKER=yes
expose:
- "8000"
env_file:
- ./dev.env
postgres:
build: ./compose/postgres
volumes:
- postgres_data_dev:/var/lib/postgresql/data
- postgres_backup_dev:/backups
environment:
- POSTGRES_USER=application
ports:
- "5432:5432"
redis:
image: redis:latest
hostname: redis
ports:
- "0.0.0.0:6379:6379"
env_file:
- ./dev.env
nginx:
build:
context: .
dockerfile: ./compose/nginx/development/Dockerfile
depends_on:
- django
ports:
- "0.0.0.0:80:80"
links:
- django
volumes_from:
- django
celeryworker:
<<: *django
depends_on:
- redis
- postgres
command: "celery -A application.taskapp worker --loglevel INFO --uid taskmaster"
版本:“2”
卷数:
postgres_data_dev:{}
postgres_backup_dev:{}
服务:
django:&django
建造:
上下文:。
dockerfile:./compose/django/development/dockerfile
取决于:
-博士后
卷数:
-.:/app
-/tmp/
链接:
-博士后
-雷迪斯
环境:
-POSTGRES_USER=应用程序
-使用_DOCKER=yes
揭露:
- "8000"
环境文件:
-/开发环境
博士后:
构建:./compose/postgres
卷数:
-postgres_data_dev:/var/lib/postgresql/data
-postgres\u backup\u dev:/backups
环境:
-POSTGRES_USER=应用程序
端口:
- "5432:5432"
redis:
图片:redis:最新版本
主机名:redis
端口:
- "0.0.0.0:6379:6379"
环境文件:
-/开发环境
nginx:
建造:
上下文:。
dockerfile:./compose/nginx/development/dockerfile
取决于:
-德扬戈
端口:
- "0.0.0.0:80:80"
链接:
-德扬戈
卷从:
-德扬戈
芹菜工人:
我使用相同的技术堆栈。这对我来说很好。
docker-compose.yml
redis:
image: redis
container_name: redis
command: ["redis-server", "--port", "${REDIS_PORT}", "--appendonly", "yes","--maxmemory", "1gb", "--maxmemory-policy", "allkeys-lru"]
ports:
- "${REDIS_PORT}:${REDIS_PORT}"
volumes:
- .:/redis.conf
networks:
- pipeline-net
celery-worker:
build:
context: ./app
container_name: celery-worker
entrypoint: celery
command: -A celery_app.celery worker --loglevel=info
volumes:
- .:/var/www/app/worker
links:
- redis
depends_on:
- redis
networks:
- pipeline-net
celery-beat:
build:
context: ./app
container_name: celery-beat
entrypoint: celery
command: -A celery_app.celery beat --loglevel=info
volumes:
- .:/var/www/app/beat
links:
- celery-worker
- redis
depends_on:
- celery-worker
- redis
networks:
- pipeline-net
flower:
image: mher/flower
container_name: flower
environment:
- CELERY_BROKER_URL=redis://redis:6379
- FLOWER_PORT=8888
ports:
- 8888:8888
links:
- redis
- celery-worker
- celery-beat
depends_on:
- redis
- celery-worker
- celery-beat
networks:
- pipeline-net
你遇到的实际问题是什么?为什么你不能让它工作,你有什么错误吗?@Bono,我的错只是检查一下更新你能发布错误本身吗?:)@博诺,我把它修好了。我将更新我对docker compose所做的更改。yml@Bono你是怎么修好的?