在docker构建期间是否有导出文件的方法?

在docker构建期间是否有导出文件的方法?,docker,Docker,我现在做一个多级构建。第一阶段使用我的内部回购凭证进行编译,我只保留二进制文件,如下例所示: 但是我想在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 .

我现在做一个多级构建。第一阶段使用我的内部回购凭证进行编译,我只保留二进制文件,如下例所示:

但是我想在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并获取报告

您可能希望连接一个docker卷,以便容器将报告转储到该卷以供以后查看。您使用的是什么CI/CD设置?这是什么。我很难在CI服务器中动态装载docker output命令直接用于
图像的输出,而不是
容器中发生的任何处理的结果。例如,这允许您通过其他方式发送docker图像文件!我不会在Docker文件中运行这两个命令,也可能根本不会在Docker中运行它们。让您的CI系统自行运行单元测试并收集生成的工件。您可能希望为容器连接一个docker卷,以便将报告转储到该容器以供以后查看。您使用的是什么CI/CD设置?这是什么。我很难在CI服务器中动态装载docker output命令直接用于
图像的输出,而不是
容器中发生的任何处理的结果。例如,这允许您通过其他方式发送docker图像文件!我不会在Docker文件中运行这两个命令,也可能根本不会在Docker中运行它们。让您的CI系统自行运行单元测试并收集结果工件。