Почему не стартует контейнер из Visual Studio?

Через docker-compose поднимаю 3 сервиса сразу: Web API (C#, Net 8), Blazor WASM (C#, Net 8), Postgre.

Встают 1 и 3 сервисы, а Blazor упорно не хочет подниматься именно при запуске через Visual Studio. То есть Blazor контейнер не поднимается в буквальном смысле, в нем нет ни единой строчки логов, хотя в списке Docker-desktop он горит как запущенный
66fbeffcca8dd062364588.png
66fbf00459ca9201474115.png

Если запустить руками через powershell, то все 3 сервиса поднимаются и работают как должны.
66fbf0133b081279515659.png

Docker-compose:
services:
  api-server:
    depends_on:
      - api-db
    build:
      context: .
      dockerfile: src/ApiServer/Dockerfile
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=http://+:80
      - DB_HOST=email-db
    container_name: api-server
    image: api-server:latest
    restart: always
    ports:
      - 15000:80

  api-client:
    depends_on:
      - api-server
    build:
      context: .
      dockerfile: src/ApiServer.Client/Dockerfile
      args:
        BUILD_ENVIRONMENT: Development
    container_name: api-client
    image: api-client:latest
    restart: always
    ports:
      - 15100:80

  api-db:
    image: postgres:17-alpine
    container_name: api-db
    environment:
      POSTGRES_USER: test-user
      POSTGRES_PASSWORD: test-password
      POSTGRES_DB: Test
    ports:
      - 5432:5432
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: always

volumes:
  postgres_data:
    name: test_data


Dockerfile blazor приложения:
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY src/ApiServer.Client/ApiServer.Client.csproj ./ApiServer.Client/
WORKDIR /src/ApiServer.Client
RUN dotnet restore
COPY src/ApiServer.Client/. ./
COPY /modules /modules

RUN dotnet publish -c Release -o /app/publish

FROM nginx:alpine AS final
ARG BUILD_ENVIRONMENT
COPY src/ApiServer.Client/nginx.conf /etc/nginx/nginx.conf
COPY --from=build /app/publish/wwwroot /usr/share/nginx/html
RUN sed -i -e 's/TO_REPLACE_BLAZOR_ENVIRONMENT/'"$BUILD_ENVIRONMENT"'/g' /etc/nginx/nginx.conf


С чем может быть связано такое поведение и как его убрать, чтобы стартовали все 3 контейнера?

UPD: если открыть просмотр файлов контейнера с Blazor приложением, то в /usr/share/nginx/html - нет ничего, а если быть точнее, то даже папки nginx нет.

UPD 2: в консоли было замечено, что студия запускает дополнительно docker-compose.vs.debug.g.yml:
docker compose  -f "D:\repos\ApiServer\docker-compose.yml" -f "D:\repos\ApiServer\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose8518693767120285951 --ansi never up -d


services:
  api-client:
    image: api-client:dev
    build:
      args:
        LAUNCHING_FROM_VS: true
        BUILD_CONFIGURATION: Debug
      target: build
      labels:
        com.microsoft.created-by: "visual-studio"
        com.microsoft.visual-studio.project-name: "ApiServer.Client"
    environment:
      - DOTNET_USE_POLLING_FILE_WATCHER=1
      - ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true
      - NUGET_FALLBACK_PACKAGES=
    volumes:
      - D:\repos\ApiServer\src\ApiServer.Client:/app:rw
      - D:\repos\ApiServer:/src:rw
      - C:\Users\user\vsdbg\vs2017u5:/remote_debugger:rw
      - D:\NugetCache\packages:/.nuget/packages:ro
      - C:\Users\user\AppData\Roaming\ASP.NET\Https:/root/.aspnet/https:ro
      - C:\Users\user\AppData\Roaming\ASP.NET\Https:/home/app/.aspnet/https:ro
      - C:\Users\user\AppData\Roaming\Microsoft\UserSecrets:/root/.microsoft/usersecrets:ro
      - C:\Users\user\AppData\Roaming\Microsoft\UserSecrets:/home/app/.microsoft/usersecrets:ro
      - C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\tools\linux-x64\net8.0:/VSTools:ro
      - C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\HotReload:/HotReloadAgent:ro

    entrypoint: "dotnet --roll-forward Major /VSTools/DistrolessHelper/DistrolessHelper.dll --wait"
    labels:
      com.microsoft.visualstudio.debuggee.program: "dotnet"
      com.microsoft.visualstudio.debuggee.arguments: " --additionalProbingPath /.nuget/packages  \"\""
      com.microsoft.visualstudio.debuggee.workingdirectory: "/app"
      com.microsoft.visualstudio.debuggee.killprogram: "dotnet --roll-forward Major /VSTools/DistrolessHelper/DistrolessHelper.dll --stop dotnet"
    tty: true
  api-server:
    image: api-server:dev
    build:
      args:
        LAUNCHING_FROM_VS: true
        BUILD_CONFIGURATION: Debug
      target: base
      labels:
        com.microsoft.created-by: "visual-studio"
        com.microsoft.visual-studio.project-name: "ApiServer"
    environment:
      - DOTNET_USE_POLLING_FILE_WATCHER=1
      - ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true
      - NUGET_FALLBACK_PACKAGES=
    volumes:
      - D:\repos\ApiServer\src\ApiServer:/app:rw
      - D:\repos\ApiServer:/src:rw
      - C:\Users\user\vsdbg\vs2017u5:/remote_debugger:rw
      - D:\NugetCache\packages:/.nuget/packages:ro
      - C:\Users\user\AppData\Roaming\ASP.NET\Https:/root/.aspnet/https:ro
      - C:\Users\user\AppData\Roaming\ASP.NET\Https:/home/app/.aspnet/https:ro
      - C:\Users\user\AppData\Roaming\Microsoft\UserSecrets:/root/.microsoft/usersecrets:ro
      - C:\Users\user\AppData\Roaming\Microsoft\UserSecrets:/home/app/.microsoft/usersecrets:ro
      - C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\tools\linux-x64\net8.0:/VSTools:ro
      - C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\HotReload:/HotReloadAgent:ro

    entrypoint: "dotnet --roll-forward Major /VSTools/DistrolessHelper/DistrolessHelper.dll --wait"
    labels:
      com.microsoft.visualstudio.debuggee.program: "dotnet"
      com.microsoft.visualstudio.debuggee.arguments: " --additionalProbingPath /.nuget/packages  \"/app/bin/Debug/net8.0/ApiServer.dll\""
      com.microsoft.visualstudio.debuggee.workingdirectory: "/app"
      com.microsoft.visualstudio.debuggee.killprogram: "dotnet --roll-forward Major /VSTools/DistrolessHelper/DistrolessHelper.dll --stop dotnet"
    tty: true
  • Вопрос задан
  • 249 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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