PostgreSQL: работает ли сервер на хосте «localhost» (:: 1) и принимает ошибку

#django #postgresql #docker #celery

#django #postgresql #docker #сельдерей

Вопрос:

Сельдерей не может подключиться к PostgreSQL в моей службе docker и получает эту ошибку

 could not connect to server: Cannot assign requested address
celery_1       |        Is the server running on host "localhost" (::1) and accepting
celery_1       |        TCP/IP connections on port 5432?
 

в то время как PostgreSQL работает нормально для базы данных, и я могу выполнять действия только в случае сельдерея.

Сейчас у меня есть 2 случая в этой службе сельдерея

   celery:
    build:
      context: ./
      dockerfile: Dockerfile
    command: celery -A sampleproject worker -l info
    environment:
    - POSTGRES_USER=${POSTGRES_USER}
    - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    - POSTGRES_DB=${POSTGRES_DB}
    - POSTGRES_HOST=${POSTGRES_HOST}
    - POSTGRES_PORT=${POSTGRES_PORT}

    volumes:
      - .:/usr/src/app/

    depends_on:
     - database
     - app
     - redis
 

когда я передаю все переменные PostgreSQL в среду celery, она работает. пока я их удаляю, он не работает. почему это происходит? и как я могу это решить? чтобы я мог запустить сельдерей надлежащим образом

Ответ №1:

Нашел это при поиске того же. Я поделюсь своим решением для всех, кто найдет это.

Для меня проблема заключалась в том, что ${POSTGRES_HOST} хост был установлен на localhost . Для него должно быть установлено значение database .