【问题标题】:Docker Django, redis and celery confDocker Django、redis 和 celery 配置文件
【发布时间】:2020-11-28 20:44:56
【问题描述】:

我不知道我缺少什么部分,但是当我运行 docker-compose up --build 时 celery 没有连接到 redis 错误:无法连接到 redis://127.0.0.1:6379/0:错误 111 连接到 127.0.0.1: 6379。连接被拒绝。

这是我的文件 docker-compose.yml

version: '3'
    
  services:
    web:
      build: .
      image: resolution
      depends_on:
        - db
        - redis
        - celery
      command: bash -c "python3 /code/manage.py migrate && python3 /code/manage.py initialsetup && python3 /code/manage.py runserver 0.0.0.0:8000"
      volumes:
        - .:/code
      ports:
        - "8000:8000"
      links:
        - db:db
        - redis:redis
        - celery:celery
      restart: always
      environment:
        - POSTGRES_DB=postgres
        - POSTGRES_USER=postgres
        - POSTGRES_PASSWORD=postgres
        - PGHOST=trust
        - PGPORT=5432
    db:
      image: postgres:latest
      environment:
        POSTGRES_DB: 'postgres'
        POSTGRES_PASSWORD: 'postgres'
        POSTGRES_USER: 'postgres'
        POSTGRES_HOST: 'trust'
    redis:
      image: "redis:alpine"
      ports:
      - "6379:6379"
      restart: on-failure
    celery:
      image: resolution
      command: celery -A mayan worker -l info
      environment:
        - DJANGO_SETTINGS_MODULE=mayan.settings.production
      volumes:
        - .:/code
      depends_on:
        - db
        - redis
      links:
        - redis:redis
      restart: on-failure

【问题讨论】:

    标签: django docker redis celery


    【解决方案1】:

    celeryredis 在不同的容器中运行。

    根据您分享的错误消息,您的celery 很可能正在尝试连接到localhost 以访问RedisDB,这不是在本地主机上。

    搜索包含 CELERY_BROKER_URLCELERY_RESULT_BACKEND 值的 celery 配置文件。他们很可能看起来像这样:

    CELERY_BROKER_URL = 'redis://localhost:6379'
    CELERY_RESULT_BACKEND = 'redis://localhost:6379'
    

    它们应该看起来像这样,指向您在 compose 文件中定义的 redis 服务名称:

    CELERY_BROKER_URL = 'redis://redis:6379'
    CELERY_RESULT_BACKEND = 'redis://redis:6379'
    

    如果你没有这样的配置,直接搜索Celery实例初始化的地方,确保它看起来像这样:

    app = Celery('server', broker='redis://redis:6379/0')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-13
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-16
      • 2018-02-04
      • 2017-01-29
      相关资源
      最近更新 更多