为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

潇湘沐 2021-07-29 20:12:01
我有一个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:有没有人遇到过同样的问题?
查看完整描述

2 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

你可以参考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 vatables


CACHE_URL=redis://redis:6379/0

CELERY_BROKER_URL=redis://redis:6379/1


查看完整回答
反对 回复 2021-08-03
  • 2 回答
  • 0 关注
  • 258 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号