Docker如何将dotnet发布的文件夹复制到本地机器



我有一个dockerfile,我在其中构建了一个控制台应用程序。在dockerfile中运行发布命令后,我可以使用RUN ls la查看输出文件夹。我的问题是,如何导出或提取为查看本地计算机上的文件而构建的输出文件夹(在本例中为app/out(?

Dockerfile

FROM mcr.microsoft.com/dotnet/sdk:6.0 as build
WORKDIR /app
COPY . .
RUN dotnet --info
RUN dotnet restore ./MyProject.csproj
RUN ls -la
RUN dotnet publish ./MyProject.csproj -c Release -o out
RUN ls -la

# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY --from=build /app/out .
ENTRYPOINT ["dotnet", "MyProject.dll"]

您可以运行容器并将文件复制到已安装的目录中。在Linux上,您可以装载当前目录并像这样复制(用映像的名称替换<image name>(

docker run --rm -v $(pwd):/dest --entrypoint bash <image name> -c "cp * /dest/"

在Windows上,您可以通过命令提示符来执行此操作(在Powershell中不起作用(

docker run --rm -v %cd%:/dest --entrypoint bash <image name> -c "cp * /dest/"

最新更新