Что я делаю неправильно в docker -compose для .netcore и postgres? - PullRequest
1 голос
/ 01 мая 2020

Я бьюсь головой об этой проблеме и не могу понять, в чем проблема. Запуск Docker Desktop на Windows 10. У меня есть один API-интерфейс dotnetcore 3.1, который подключается к postgres. Оба они выполняются в контейнерах.

Кажется, все работает, кроме подключения к базе данных. Поскольку я смотрел мои docker -compose.yml миллионы раз, я не могу придумать другую идею.

Вот моя строка подключения:

"Server=postgres;Port=5432;Database=IdentityManager;User Id=postgres;Password=12345678;"

Вот docker -compose.yml file:

version: '3'

services:
  identityserver:
    depends_on: 
      - "postgres"
    container_name: identityserver
    build:
      context: ./my_project/
      dockerfile: Dockerfile
    environment: 
      - ASPNETCORE_ENVIRONMENT='Development'
    ports: 
      - "5000:80"

  postgres:
    image: "postgres"
    container_name: "postgres"
    restart: always
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=12345678
      - POSTGRES_DB=IdentityManager
    expose: 
      - "5432"

Все накапливается, но соединение с базой данных не удается:

Unhandled exception. Npgsql.NpgsqlException (0x80004005): Exception while connecting identityserver 
---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (99): Cannot assign requested address [::1]:5432

Самое странное, что когда я запускаю postgres наедине с этим та же конфигурация на docker -compose.yml и запуск приложения вне контейнера с немного другой строкой подключения:

"Server=127.0.0.1;Port=5432;Database=IdentityManager;User Id=postgres;Password=12345678;"

Я могу подключиться к базе данных.

Я попытался очистить все docker system prune -a, попытался перезапустить Docker, перезапустить P C, но безуспешно. Может кто-нибудь попытаться помочь?

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

Наконец-то я смог решить свою собственную проблему, и ее вообще не было в файле docker-compose.yml. Где-то в коде приложения строка подключения была изменена для поиска локального хоста в качестве хоста вместо postgres.

После возврата обратно на postgres все было хорошо.

0 голосов
/ 01 мая 2020

попробуйте

links:
  - postgres

Может быть, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...