有没有一种方法可以在Docker构建期间导出文件?

时间:2020-09-14 19:57:12

标签: docker

我现在进行多阶段构建。第一阶段使用内部存储库的凭据进行编译,并且仅按照以下示例保存二进制文件:https://github.com/dotnet/dotnet-docker/blob/master/documentation/scenarios/nuget-credentials.md

但是我想在CI服务器中运行,并且需要为CI服务器提供测试和覆盖率报告。在构建层中执行此操作将是最优雅的方法,但是在构建过程中如何从docker映像中获取文件

例如:

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build

WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj .
COPY ./nuget.config .
RUN dotnet restore

# Copy and publish app and libraries
COPY . .

############ Get this files out #####################
# Generate test report. copy this to external directory
RUN dotnet test --logger trx
# Generate coverage report. copy this to external directory
RUN dotCover.sh dotnet --output=myRep.html --reportType=HTML -- test
#######################################################

RUN dotnet publish -c Release -o out  --no-restore

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

所以我希望能够运行docker build并将其转储测试和覆盖率报告到运行docker build命令的当前目录。这可能吗?这将使CI变得无缝,因为所有服务器必须做的就是运行docker build并获取报告

0 个答案:

没有答案