Не могу подключиться к бд postgresql в docker-compose
При попытке создании миграции сталкиваюсь с ошибкой - Хост не найден или Unable to connect to ...
docker-compose файл
version: '3.4'
services:
backend:
image: webapiwithdockerpostgre
build:
context: .
dockerfile: WebApiWithDockerPostgre/Dockerfile
database:
image: postgres
restart: always
ports:
- 5432:5432
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: superpassworddocker
POSGRES_DB: TestDb
volumes:
- database-data:/var/lib/postgresql/data/
volumes:
database-data:
pgadmin:
Dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["WebApiWithDockerPostgre/WebApiWithDockerPostgre.csproj", "WebApiWithDockerPostgre/"]
RUN dotnet restore "WebApiWithDockerPostgre/WebApiWithDockerPostgre.csproj"
COPY . .
WORKDIR "/src/WebApiWithDockerPostgre"
RUN dotnet build "WebApiWithDockerPostgre.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApiWithDockerPostgre.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApiWithDockerPostgre.dll"]
Connection string -
"Host=database;Database=DbTest;Username=admin;Password=superpassworddocker;Port=5432"
Ответы (1 шт):
Автор решения: dasper
→ Ссылка
Излазив по всем паутинкам интернета, обнаружил интересную статью, где используют host.docker.internal , вместо названия контейнера. мне это помогло и я очень рад.
моя строка подключения выглядит следующим образом:
Server=host.docker.internal;Database=TestDb;User ID=admin;Password=superpassword;Port=5432