Docker 如何将 dotnet 发布的文件夹复制到本地机器
Docker how to copy dotnet published folder to local machine
我有一个 dockerfile,我在其中构建了一个控制台应用程序。在 运行 dockerfile 中的发布命令之后,我可以使用 运行 ls-la 查看输出文件夹。我的问题是如何导出或提取为查看本地计算机上的文件而构建的输出文件夹(在本例中为 app/out)?
Docker 文件
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/"
我有一个 dockerfile,我在其中构建了一个控制台应用程序。在 运行 dockerfile 中的发布命令之后,我可以使用 运行 ls-la 查看输出文件夹。我的问题是如何导出或提取为查看本地计算机上的文件而构建的输出文件夹(在本例中为 app/out)?
Docker 文件
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/"