docker - Dockerfile 中 .NET 5 的次要/补丁版本是否有自动前滚功能
问题描述
在本地启动 .NET 5 项目时,会自动前滚,这意味着在启动项目时,运行时将选择系统上安装的最新次要/补丁版本。
为了部署到生产,我使用带有典型 Dockerfile 的 docker
FROM mcr.microsoft.com/dotnet/sdk:5.0
和
FROM mcr.microsoft.com/dotnet/aspnet:5.0
在运行 docker 映像的服务器上键入“dotnet --info”时,我总是得到版本“5.0.0”。
我想知道每次发布新版本时是否必须在 Dockerfile 中手动输入正确的次要/补丁版本,或者是否有版本说明符来安装这些小版本并自动前滚。
解决方案
mcr.microsoft.com/dotnet/sdk:5.0
是一个浮动标签。它总是指该major.minor 版本中的最新补丁:
该标签已更新为始终引用当前可用于 Major.Minor 版本的最新补丁。
例如,如果您今天检查 docker 映像,您应该会看到这是一个 5.0.102 SDK 和 5.0.2 运行时映像:
$ 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
以确保您正在运行最新的容器映像。
推荐阅读
- inspector - 如何在钴中使用检查器?
- python-3.x - python函数在尝试将日期时间字符串'12/20/2018 11:02:34:933'转换为日期时间对象时抛出错误
- angular - Angular 7 和 IIS 7:切换到开发环境时出错
- python - 捕获主目录中所有子文件夹中的所有 csv 文件 - Python 3.x
- javascript - JQuery 等于或包含字符串值不起作用
- swift - 用户切换 segmentController 索引时如何清理 searchText?
- unity3d - 有没有办法将多分支管道的所有分支只构建到一个目录中?
- javascript - Testcafe t.typeText 默认使用 { paste: true }
- python - Pyinstaller win32ctypes.pywin32.pywintypes.error: (1920, 'LoadLibraryExW', '系统无法访问文件')
- sql - 如何将系统分组依据应用于 SQL Server Management Studio 中的表