Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 设置docker-compose.yml为django项目运行芹菜工人和芹菜节拍,以redis为代理_Python_Django_Celery_Docker Compose - Fatal编程技术网

Python 设置docker-compose.yml为django项目运行芹菜工人和芹菜节拍,以redis为代理

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:

我已经使用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:
      - 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你是怎么修好的?