Итак В этой статье 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 выглядит великолепно, но я также хочу:
- Запустить тесты с покрытием, например, через OpenCover или DotCover, возможно, с SonarScanner.
- Publi sh результаты теста
- Publi sh результаты покрытия - возможно, для SonarQube, может быть, для самой сборки, может быть и для того и другого.
- Publi sh символы отладки для внутреннего сервера символов.
- Сборка может создавать двоичные журналы сборки - я хочу прикрепить их к сборке.
Как эти требования согласуются со сборкой кода в контейнере docker? Это не просто приятно иметь предметы. У меня есть сборки, которые делают все это, и я не хочу терять эту функциональность, потому что мы находим ее полезной.
Итак, возможно ли сделать это в docker контейнере?