【问题标题】:docker-compose issue - Celery container not able to access DB containerdocker-compose 问题 - 芹菜容器无法访问数据库容器
【发布时间】:2020-09-05 23:22:20
【问题描述】:

问候 我一直在开发一个 Django 应用程序,它在 Redis、PostgreSQL、Celery、RabbitMQ 上运行。 我编写了一个 docker-compose 来在它们各自的容器中运行所有这些服务。

这是我的 docker-compose.yml

version: "3.2"

services:
  app:
    build:
      context: .
    image: &app app
    ports:
      - "8000:8000"
    env_file: &envfile
      - env.env
    volumes:
      - ./app:/app
    environment:
      - DB_HOST=db
    command: >
      sh -c "python manage.py wait_for_db &&
            python manage.py migrate &&
            python manage.py runserver 0.0.0.0:8000"
    depends_on:
      - db
      - redis
      - broker

  redis:
    restart: always
    image: redis:latest
    ports:
      - "6379:6379"

  db:
    image: postgres:12-alpine
    environment:
      - "POSTGRES_HOST_AUTH_METHOD=trust"

  worker:
    build: .
    image: *app
    restart: always
    env_file: *envfile
    command: ["celery", "worker", "--app=worker.worker.app", "--concurrency=1", "--hostname=worker@%h", "--loglevel=INFO"]
    volumes:
      - ./app:/app
    depends_on:
      - broker
      - redis
      - db

  broker:
    image: rabbitmq:3
    env_file: *envfile
    ports:
      - 5672:5672

  flower:
    image: zoomeranalytics/flower:0.9.1-4.0.2
    restart: "no"
    env_file: *envfile
    ports:
      - "5555:5555"
    depends_on:
      - broker

我的应用程序运行良好,容器似乎也在运行,当我将异步作业推送到工作容器时出现问题。工作容器接手工作,并开始处理,我试图访问工作人员中的数据库,但它给了我以下错误 -

任务 [640127f3-7769-4757-8c33-8de9052ca92c] 引发意外:OperationalError('无法连接到服务器:没有这样的文件或目录\n\t服务器是否在本地运行并接受\n\t连接Unix 域套接字 "/tmp/.s.PGSQL.5432"?\n')

我知道我的工作容器正在尝试访问它无法找到的数据库,有人可以帮我通过工作容器访问我的数据库容器吗,对此非常坚持。

我尝试了 depends_onlinks,但似乎没有任何效果。

【问题讨论】:

  • 您可以将连接字符串之类的配置添加到数据库吗?
  • 问题已解决,我错过了工作容器的 DB_HOST 部分。感谢您的帮助顺便说一句:)

标签: django docker docker-compose celery


【解决方案1】:

知道了,谢谢我的队友。

我错过了在工作容器中提供环境变量,我一通过,瞧!

environment:
  - DB_HOST=db

【讨论】:

    猜你喜欢
    • 2021-07-19
    • 2020-10-18
    • 1970-01-01
    • 2016-09-24
    • 2019-10-05
    • 1970-01-01
    • 2017-10-12
    • 2016-03-18
    相关资源
    最近更新 更多