【问题标题】:Dotnet build crashes with DockerDocker 的 Dotnet 构建崩溃
【发布时间】:2019-11-18 15:57:37
【问题描述】:

当我从 VS2017 生成的 Dockerfile 运行默认值时,几分钟后我收到以下错误:

命令 'cmd /S /C dotnet build "XXX.csproj" -c Release -o /app' 返回非零代码:4294967295:无法关闭容器:容器 e9402aaef7780a5c66dca0e3b9f5683c3c2cc079ff7934844301067bd1ce07ad 在关闭期间遇到错误:在Windows 系统调用:与托管容器的虚拟机的连接已关闭。 (0xc037010a)

由于我是 Docker 新手,我没有任何想法。有谁知道,为什么或如何解决?

我正在使用 Docker 19.03.4。

Dockerfile:

FROM microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.2-sdk-nanoserver-1803 AS build
WORKDIR /src
COPY ["XXX.csproj", "XXX/"]
.
.
.
COPY ["XXX.csproj", "XXX/"]
RUN dotnet restore "XXX.csproj"
COPY . .
WORKDIR "/src/XXX"
RUN dotnet build "XXX.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "XXX.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", XXX.dll"]

更新: 我删除了所有图像 (48),现在可以使用,只是需要很长时间。

【问题讨论】:

  • 首先最好避免使用德语的问题细节 :))) 幸运的是我能理解它所说的:) 1. 你在使用 docker for windows 吗? 2. 看起来你运行 docker 的虚拟 linux 机器由于某种原因关闭了。你在使用 hyper-v(windows docker 的默认 VM 提供程序)吗?
  • 是的,我知道,对不起:“与主机的连接已关闭”
  • 我刚刚在上面添加了一些问题,请您提供这些信息
  • 1.是的,Windows 2。Hyper-V:是的
  • 此项目的构建过程中是否有任何自定义?这个构建是否依赖于一些 docker 命令?例如。在构建期间运行一些容器,一些后期操作等?

标签: docker .net-core


【解决方案1】:

看起来 dotnet 构建失败了,最好在外部构建和发布二进制文件,然后将它们复制到 docker 映像,这样可以减少 docker 构建时间。

【讨论】:

  • 我认为 Dockerfiles 的整个想法是允许您构建(如果需要编译)映像中所需的依赖项/应用程序。 dotnet build 应该可以正常工作。
  • 应将其更改为评论,因为您没有回答实际问题。
  • 为每个 ADD、RUN 和 COPY 命令创建新的 Docker 层,复制源文件并编译它有什么意义,您可以在其中复制编译的项目,它可以减少图像大小和 docker 构建时间.
  • @MrFox 它(几乎)为您提供可重复的构建!为什么只有当您(几乎)也可以免费获得可重现的构建时才限制 docker 进行可重现的部署呢?至于层大小,您可以减少 RUN 命令的数量并删除您知道在接下来的步骤中不会使用的文件。
【解决方案2】:

查看 .net core 容器镜像的版本

如下图所示插入一点运行命令

FROM microsoft/dotnet:2.2-sdk-nanoserver-1803 AS build
WORKDIR /src
RUN dotnet --version
COPY ["XXX.csproj", "XXX/"]

还要检查本地计算机的 dotnet 版本

dotnet --version

这两个版本应该匹配。我过去曾遇到过预览版问题。

【讨论】:

    猜你喜欢
    • 2021-07-06
    • 2018-09-16
    • 1970-01-01
    • 2017-03-30
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    相关资源
    最近更新 更多