为什么:标签:1.1失败时运行最新的aspnet核心docker镜像?

时间:2017-05-23 12:09:07

标签: docker asp.net-core

我使用Visual Studio 2017创建了一个ASP.NET核心解决方案,在创建时添加了docker支持。项目中的docker文件是:

FROM microsoft/aspnetcore:1.1
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "AspNetCoreInDocker.dll"]

当我运行项目时,它构建正常,但后来我收到错误:

Net Core did not start

在调试输出中我有:

realpath(): Invalid argument
The specified framework 'Microsoft.NETCore.App', version '1.1.2' was not found.
  - Check application dependencies and target a framework version installed at: /usr/share/dotnet/shared/Microsoft.NETCore.App
  - The following versions are installed:
  1.1.1
  - Alternatively, install the framework version '1.1.2'.
The program '' has exited with code 131 (0x83).

我感谢解决方案是"安装1.1.2"但这不是我的问题。如果我更改docker文件的第一行以使用:latest标记:

FROM microsoft/aspnetcore:latest

然后它构建并运行良好。

microsoft/aspnetcore的泊坞窗中心页面上,这两个代码都指向同一位置:https://github.com/aspnet/aspnet-docker/blob/master/1.1/jessie/runtime/Dockerfile

我希望两个标签都失败。为什么:1.1会失败而:latest会运行?

2 个答案:

答案 0 :(得分:0)

使用

检查容器中dotnet的版本
AppKernel

答案 1 :(得分:0)

我的猜测是docker缓存。您指定了1.1,当您第一次构建图像​​时,意味着1.1.1。现在,当在Dockerfile中指定1.1时,docker总是从缓存中给你1.1.1。