猿问

如何使用 docker-compose 运行 Python Django 和 Celery?

我有一个Python的使用应用程序的Django和芹菜,我试图运行使用码头工人和码头工人,撰写,因为我也使用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:

有没有人遇到过同样的问题?


潇湘沐
浏览 259回答 2
2回答

弑天下

你可以参考docker-compose的Saleor项目。我建议让celery运行它的守护进程只依赖于redis代理。查看docker-compose.yml文件的配置:services:  web:    build:      context: .      dockerfile: ./Dockerfile      args:        STATIC_URL: '/static/'    restart: unless-stopped    networks:      - saleor-backend-tier    env_file: common.env    depends_on:      - db      - redis    celery:        build:          context: .          dockerfile: ./Dockerfile          args:            STATIC_URL: '/static/'        command: celery -A saleor worker --app=saleor.celeryconf:app --loglevel=info        restart: unless-stopped        networks:          - saleor-backend-tier        env_file: common.env        depends_on:          - redis另请参阅来自两个服务的连接由common.env文件中显示的redis单独设置:environtment vatablesCACHE_URL=redis://redis:6379/0CELERY_BROKER_URL=redis://redis:6379/1
随时随地看视频慕课网APP

相关分类

Python
我要回答