Как построить Asp. Net Ядро в контейнере, учитывая, что нам нужно запустить тесты, опубликовать sh символы, тест, охват и т. Д. c ...? - PullRequest
0 голосов
/ 07 января 2020

Итак В этой статье Microsoft мы рекомендуем создавать asp. net основных приложений в контейнере docker, используя следующий файл docker:

FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app

# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore

# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /app/aspnetapp
RUN dotnet publish -c Release -o out


FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
WORKDIR /app
COPY --from=build /app/aspnetapp/out ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]

This выглядит великолепно, но я также хочу:

  1. Запустить тесты с покрытием, например, через OpenCover или DotCover, возможно, с SonarScanner.
  2. Publi sh результаты теста
  3. Publi sh результаты покрытия - возможно, для SonarQube, может быть, для самой сборки, может быть и для того и другого.
  4. Publi sh символы отладки для внутреннего сервера символов.
  5. Сборка может создавать двоичные журналы сборки - я хочу прикрепить их к сборке.

Как эти требования согласуются со сборкой кода в контейнере docker? Это не просто приятно иметь предметы. У меня есть сборки, которые делают все это, и я не хочу терять эту функциональность, потому что мы находим ее полезной.

Итак, возможно ли сделать это в docker контейнере?

...