当在本地启动。net 5项目时,有一个自动前滚,这意味着当启动项目时,运行时将选择系统上安装的最新的小版本/补丁版本。
对于部署到生产环境,我使用docker和典型的Dockerfile,其中包含如下行
FROM mcr.microsoft.com/dotnet/sdk:5.0
和
FROM mcr.microsoft.com/dotnet/aspnet:5.0
当输入"。net——info"在运行docker镜像的服务器上,我总是得到版本"5.0.0"。
我想知道我是否必须在每次发布新版本时手动在Dockerfile中输入正确的小版本/补丁版本,或者是否有版本说明符来安装自动前滚的小版本。
mcr.microsoft.com/dotnet/sdk:5.0
是一个浮动标记。它总是指的是该专业的最新补丁。小版本:
标签更新为始终引用当前Major可用的最新补丁。小版本。
例如,如果你今天检查docker镜像,你应该看到这是一个5.0.102 SDK和5.0.2 Runtime镜像:
$ podman inspect mcr.microsoft.com/dotnet/sdk:5.0 --format='json' | jq '.[0].Config.Env'
[
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"ASPNETCORE_URLS=",
"DOTNET_RUNNING_IN_CONTAINER=true",
"DOTNET_VERSION=5.0.2",
"ASPNET_VERSION=5.0.2",
"DOTNET_SDK_VERSION=5.0.102",
"DOTNET_USE_POLLING_FILE_WATCHER=true",
"NUGET_XMLDOC_MODE=skip",
"POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Debian-10"
]
如果您看到服务器上仍然是5.0.0
,则可能使用的是较旧的容器。默认情况下,docker run
将运行上次提取的映像,而不检查是否更新。
您可能需要docker pull
来显式地更新映像,或者使用docker run --pull=always
来确保您正在运行最新的容器映像。