.NET Docker:当构建多目标依赖项需要更新版本的 SDK 时,我是否还应该更新运行时基础映像?

问题描述 投票:0回答:1

我有具有多目标的依赖项目:

<TargetFrameworks>net8.0;net7.0;net6.0;net48</TargetFrameworks>

我的其他微服务是基于 .NET 7 构建的:

<TargetFramework>net7.0</TargetFramework>

在 Dockerfile 中,我需要将构建基础映像升级到 .NET 8 SDK 以修复构建错误:

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build

但我的问题是:

如果我的微服务项目(Docker 的

ENTRYPOINT
)是在 .NET 7 上构建的,我可以(并且应该)将运行时映像更新到 .NET 8 吗?也许有一些安全原因?

FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base ---> :8.0
c# asp.net docker .net-core dotnet-sdk
1个回答
0
投票

aspnet
图像的 .NET 版本应与项目的目标版本匹配。由于您的微服务面向 .NET 7,因此您的
aspnet
图像应保留
7.0
标签。不过,使用 .NET 8 SDK 是完全可以接受的,因为它能够构建(但不能运行)针对旧版本的项目。也就是说,如果您能够将项目升级到 .NET 8,那就更好地获得错误修复、改进的性能和功能的所有好处。

© www.soinside.com 2019 - 2024. All rights reserved.