Нет доступа к ASP .NET 8.0 Web Api в docker
У меня возникла проблема, что я не могу получить доступ к своему api, развернутому в docker. Вот так выглядит мой Dockerfile:
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["Health.Api/Health.Api.csproj", "Health.Api/"]
COPY ["Health.Core/Health.Core.csproj", "Health.Core/"]
COPY ["Health.DAL/Health.DAL.csproj", "Health.DAL/"]
COPY ["Health.Domain/Health.Domain.csproj", "Health.Domain/"]
RUN dotnet restore "./Health.Api/./Health.Api.csproj"
COPY . .
WORKDIR "/src/Health.Api"
RUN dotnet build "./Health.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./Health.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Health.Api.dll"]
Вот так выглядит docker-compose.yml:
version: '3.4'
services:
health.api:
image: ${DOCKER_REGISTRY-}healthapi
build:
context: .
dockerfile: Health.Api/Dockerfile
Вот так выглядит docker-compose.override.yml:
version: '3.4'
services:
health.api:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "8080:8080"
volumes:
- ${APPDATA}/Microsoft/UserSecrets:/home/app/.microsoft/usersecrets:ro
- ${APPDATA}/ASP.NET/Https:/home/app/.aspnet/https:ro
health.cache:
image: redis
container_name: health.cache
restart: always
ports:
- "6379:6379"
health.database:
image: postgres:latest
container_name: health.database
environment:
- POSTGRES_DB=healthdb
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
volumes:
- ./.containers/health-db:/var/lib/postgresql/data
ports:
- "5432:5432"
Если я запускаю свой проект через Visual Studio, то все работает, как ожидается. Если же я останавливаю отладку в Visual Studio и пытаюсь достучаться к api по адресу http://localhost:8080 (либо к swagger, либо к endpoint в postman), то выдает ошибку
Уже тонну способов из интернета перепробовал. Подскажите, что я делаю не так?