首页 > 解决方案 > Docker 和 VS Mac

问题描述

按照 Docker 页面上的说明,我创建了一个非常简单的 Dockerfile,如下所示:

 FROM microsoft/dotnet:sdk AS build-env
 WORKDIR /app

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

 # Copy everything else and build
 COPY . ./
 RUN dotnet publish -c Release -o out

 # Build runtime image
 FROM microsoft/dotnet:aspnetcore-runtime
 WORKDIR /app
 COPY --from=build-env /app/out .
 ENTRYPOINT ["dotnet", "dockertest.dll"]

这实际上是 Docker站点上示例的副本,只是更改了应用程序名称。

我使用 Visual Studio for Mac 创建了一个非常简单的 ASP.Net 应用程序(实际上,只是添加了一个很小的 ​​HTML 文件的默认应用程序)。

当我第一次运行docker build -t dockertest .失败时dotnet publish。然后我dotnet publish手动运行并过去了。

它现在在副本上失败:

步骤 9/10:复制 --from=build-env /app/out。

 COPY failed: stat /var/lib/docker/overlay2/1484306cebf1def83638270757e70a8cf874fb5a167f39e5bfaae92a47cc071c/merged/app/out: no such file or directory

这是怎么回事?

标签: dockervisual-studio-mac

解决方案


那么您是dotnet publish在容器内运行还是在主机上运行?Docker 文件试图在容器内运行这些命令,因此在主机上运行这些命令不会解决问题。

您是否尝试在 VS for Mac 中右键单击您的项目并将“添加 Docker 支持”添加到您的应用程序中?它应该生成一个 docker 文件,然后您可以在 VS 中在容器内运行/调试您的应用程序。


推荐阅读