@Kirill-Gorelov
С ума с IT

Docker + postgres как подружить?

Парни, нужна помощь. Уже третий день вожусь....
Настроил докер и потсгрес. Вне докера могу подключиться к БД.
Но внутри не проходит подключение. Выдает ошибку

Is the server running on that host and accepting TCP/IP connections?
connection to server at "localhost" (127.0.0.1), port 5433 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?


Ответы на тостере я уже прочитал... И на SO тоже....
Не конектится и все ...
Dockerfile для постгрес

FROM postgres:13
COPY postgresql.conf /etc/postgresql/postgresql.conf


В файле postgresql.conf только одна директива

listen_addresses='*'


вот мой docker-compose
version: '3'
services:
  
  app:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./app:/app
    environment:
      - ENV=dev
    env_file:
      - ./app/.env.local
    ports:
      - "8000:8000"
    command: poetry run uvicorn index:app --reload --host 0.0.0.0 --port 8000
    networks:
      - proxy-net
    depends_on:
      - db
      - redis
      - rabbitmq

  db:
    container_name: db
    build: ./.infrastructure/postgres
#    image: ${IMAGE_DB}
    restart: always
    volumes:
      - db_volume:/var/lib/postgresql/data/
    healthcheck:
      test: [ "CMD-SHELL", "sh -c 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}'" ]
      interval: 10s
      timeout: 3s
      retries: 3
    logging:
      driver: journald
    env_file:
      - ./app/.env.local
    command: postgres -c config_file=/etc/postgresql/postgresql.conf
    networks:
      - proxy-net
    ports:
      - "5433:5432"

  redis:
    image: redis:alpine
    networks:
      - proxy-net
    env_file:
      - ./app/.env.local
    ports:
      - "6379:6379"

  rabbitmq:
    image: rabbitmq:3-management
    environment:
      RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
      RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD}
    ports:
      - "5672:5672"
      - "15672:15672"
    env_file:
      - ./app/.env.local
    networks:
      - proxy-net

  celery:
    build:
      context: .
      dockerfile: Dockerfile
    command: poetry run celery -A worker --loglevel=info
    environment:
      - CELERY_BROKER_URL=amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@rabbitmq:5672/
      - CELERY_RESULT_BACKEND=redis://${REDIS_HOST}:${REDIS_PORT}/0
    depends_on:
      - rabbitmq
      - redis
    networks:
      - proxy-net

volumes:
  db_volume:
  rabbitmq_volume:
  redis_volume:

networks:
  proxy-net:
    driver: bridge


Из приложения я уже как только не пытался подключиться к БД
и порты менял и хост менял, одна и таже ошибка ....
ПАМАГИТЕ)))
  • Вопрос задан
  • 210 просмотров
Решения вопроса 1
Wispik
@Wispik
В докере нет localhost. Вместо localhost надо название контейнера с postgeres написать
Ответы на тостере я уже прочитал... И на SO тоже....

по моему об этом в любом туториале про postgeres+docker написано
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mxelgin
ports:
      - "5433:5432"


исправьте и подключайтесь на один порт 5432 чтоб не запутаться
ports:
- "5432:5432"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы