docker - 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
这是怎么回事?
解决方案
那么您是dotnet publish
在容器内运行还是在主机上运行?Docker 文件试图在容器内运行这些命令,因此在主机上运行这些命令不会解决问题。
您是否尝试在 VS for Mac 中右键单击您的项目并将“添加 Docker 支持”添加到您的应用程序中?它应该生成一个 docker 文件,然后您可以在 VS 中在容器内运行/调试您的应用程序。