diff --git a/.portal-docs/docker-hub/README.aspnet.md b/.portal-docs/docker-hub/README.aspnet.md index abb3e1f3b0..08626fa305 100644 --- a/.portal-docs/docker-hub/README.aspnet.md +++ b/.portal-docs/docker-hub/README.aspnet.md @@ -4,6 +4,8 @@ # Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/aspnet:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/aspnet:10.0` * `9.0` (Standard Support) diff --git a/.portal-docs/docker-hub/README.runtime-deps.md b/.portal-docs/docker-hub/README.runtime-deps.md index 3cb3508f4e..20e273c7a2 100644 --- a/.portal-docs/docker-hub/README.runtime-deps.md +++ b/.portal-docs/docker-hub/README.runtime-deps.md @@ -4,6 +4,8 @@ # Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/runtime-deps:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/runtime-deps:10.0` * `9.0` (Standard Support) diff --git a/.portal-docs/docker-hub/README.runtime.md b/.portal-docs/docker-hub/README.runtime.md index 1266138cfb..070689f494 100644 --- a/.portal-docs/docker-hub/README.runtime.md +++ b/.portal-docs/docker-hub/README.runtime.md @@ -4,6 +4,8 @@ # Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/runtime:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/runtime:10.0` * `9.0` (Standard Support) diff --git a/.portal-docs/docker-hub/README.sdk.md b/.portal-docs/docker-hub/README.sdk.md index 8abed80bd2..8904320240 100644 --- a/.portal-docs/docker-hub/README.sdk.md +++ b/.portal-docs/docker-hub/README.sdk.md @@ -4,6 +4,8 @@ # Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/sdk:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/sdk:10.0` * `9.0` (Standard Support) diff --git a/.portal-docs/mar/README.aspnet.portal.md b/.portal-docs/mar/README.aspnet.portal.md index c57307b6e6..279aa14ce5 100644 --- a/.portal-docs/mar/README.aspnet.portal.md +++ b/.portal-docs/mar/README.aspnet.portal.md @@ -10,6 +10,8 @@ Watch [discussions](https://github.com/dotnet/dotnet-docker/discussions/categori ## Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/aspnet:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/aspnet:10.0` * `9.0` (Standard Support) diff --git a/.portal-docs/mar/README.runtime-deps.portal.md b/.portal-docs/mar/README.runtime-deps.portal.md index d007152d4d..7e77e65375 100644 --- a/.portal-docs/mar/README.runtime-deps.portal.md +++ b/.portal-docs/mar/README.runtime-deps.portal.md @@ -10,6 +10,8 @@ Watch [discussions](https://github.com/dotnet/dotnet-docker/discussions/categori ## Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/runtime-deps:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/runtime-deps:10.0` * `9.0` (Standard Support) diff --git a/.portal-docs/mar/README.runtime.portal.md b/.portal-docs/mar/README.runtime.portal.md index 2d56bed226..0dd0cfe56d 100644 --- a/.portal-docs/mar/README.runtime.portal.md +++ b/.portal-docs/mar/README.runtime.portal.md @@ -10,6 +10,8 @@ Watch [discussions](https://github.com/dotnet/dotnet-docker/discussions/categori ## Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/runtime:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/runtime:10.0` * `9.0` (Standard Support) diff --git a/.portal-docs/mar/README.sdk.portal.md b/.portal-docs/mar/README.sdk.portal.md index 3283f793ba..b1a259c899 100644 --- a/.portal-docs/mar/README.sdk.portal.md +++ b/.portal-docs/mar/README.sdk.portal.md @@ -16,6 +16,8 @@ Watch [discussions](https://github.com/dotnet/dotnet-docker/discussions/categori ## Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/sdk:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/sdk:10.0` * `9.0` (Standard Support) diff --git a/README.aspnet.md b/README.aspnet.md index c4aede77bf..01ed8c1ff4 100644 --- a/README.aspnet.md +++ b/README.aspnet.md @@ -6,6 +6,8 @@ ## Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/aspnet:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/aspnet:10.0` * `9.0` (Standard Support) @@ -87,7 +89,7 @@ For more information, see the [composite images section in the Image Variants do Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.1-noble-amd64, 10.0-noble-amd64, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0, latest | [Dockerfile](src/aspnet/10.0/noble/amd64/Dockerfile) | Ubuntu 24.04 +10.0.1-noble-amd64, 10.0-noble-amd64, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0 | [Dockerfile](src/aspnet/10.0/noble/amd64/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-amd64, 10.0-noble-chiseled-amd64, 10.0.1-noble-chiseled, 10.0-noble-chiseled | [Dockerfile](src/aspnet/10.0/noble-chiseled/amd64/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-extra-amd64, 10.0-noble-chiseled-extra-amd64, 10.0.1-noble-chiseled-extra, 10.0-noble-chiseled-extra | [Dockerfile](src/aspnet/10.0/noble-chiseled-extra/amd64/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-composite-amd64, 10.0-noble-chiseled-composite-amd64, 10.0.1-noble-chiseled-composite, 10.0-noble-chiseled-composite | [Dockerfile](src/aspnet/10.0/noble-chiseled-composite/amd64/Dockerfile) | Ubuntu 24.04 @@ -137,11 +139,28 @@ Tags | Dockerfile | OS Version 8.0.22-azurelinux3.0-distroless-composite-amd64, 8.0-azurelinux3.0-distroless-composite-amd64, 8.0.22-azurelinux3.0-distroless-composite, 8.0-azurelinux3.0-distroless-composite | [Dockerfile](src/aspnet/8.0/azurelinux3.0-distroless-composite/amd64/Dockerfile) | Azure Linux 3.0 8.0.22-azurelinux3.0-distroless-composite-extra-amd64, 8.0-azurelinux3.0-distroless-composite-extra-amd64, 8.0.22-azurelinux3.0-distroless-composite-extra, 8.0-azurelinux3.0-distroless-composite-extra | [Dockerfile](src/aspnet/8.0/azurelinux3.0-distroless-composite-extra/amd64/Dockerfile) | Azure Linux 3.0 +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.0-alpha.1-resolute-amd64, 11.0-preview-resolute-amd64, 11.0.0-alpha.1-resolute, 11.0-preview-resolute, 11.0.0-alpha.1, 11.0-preview, latest | [Dockerfile](src/aspnet/11.0/resolute/amd64/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-amd64, 11.0-preview-resolute-chiseled-amd64, 11.0.0-alpha.1-resolute-chiseled, 11.0-preview-resolute-chiseled | [Dockerfile](src/aspnet/11.0/resolute-chiseled/amd64/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-extra-amd64, 11.0-preview-resolute-chiseled-extra-amd64, 11.0.0-alpha.1-resolute-chiseled-extra, 11.0-preview-resolute-chiseled-extra | [Dockerfile](src/aspnet/11.0/resolute-chiseled-extra/amd64/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-composite-amd64, 11.0-preview-resolute-chiseled-composite-amd64, 11.0.0-alpha.1-resolute-chiseled-composite, 11.0-preview-resolute-chiseled-composite | [Dockerfile](src/aspnet/11.0/resolute-chiseled-composite/amd64/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-composite-extra-amd64, 11.0-preview-resolute-chiseled-composite-extra-amd64, 11.0.0-alpha.1-resolute-chiseled-composite-extra, 11.0-preview-resolute-chiseled-composite-extra | [Dockerfile](src/aspnet/11.0/resolute-chiseled-composite-extra/amd64/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-alpine3.23-amd64, 11.0-preview-alpine3.23-amd64, 11.0-preview-alpine-amd64, 11.0.0-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/aspnet/11.0/alpine3.23/amd64/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-alpine3.23-composite-amd64, 11.0-preview-alpine3.23-composite-amd64, 11.0-preview-alpine-composite-amd64, 11.0.0-alpha.1-alpine3.23-composite, 11.0-preview-alpine3.23-composite, 11.0-preview-alpine-composite | [Dockerfile](src/aspnet/11.0/alpine3.23-composite/amd64/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-azurelinux3.0-amd64, 11.0-preview-azurelinux3.0-amd64, 11.0.0-alpha.1-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/aspnet/11.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-amd64, 11.0-preview-azurelinux3.0-distroless-amd64, 11.0.0-alpha.1-azurelinux3.0-distroless, 11.0-preview-azurelinux3.0-distroless | [Dockerfile](src/aspnet/11.0/azurelinux3.0-distroless/amd64/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-extra-amd64, 11.0-preview-azurelinux3.0-distroless-extra-amd64, 11.0.0-alpha.1-azurelinux3.0-distroless-extra, 11.0-preview-azurelinux3.0-distroless-extra | [Dockerfile](src/aspnet/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-composite-amd64, 11.0-preview-azurelinux3.0-distroless-composite-amd64, 11.0.0-alpha.1-azurelinux3.0-distroless-composite, 11.0-preview-azurelinux3.0-distroless-composite | [Dockerfile](src/aspnet/11.0/azurelinux3.0-distroless-composite/amd64/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-composite-extra-amd64, 11.0-preview-azurelinux3.0-distroless-composite-extra-amd64, 11.0.0-alpha.1-azurelinux3.0-distroless-composite-extra, 11.0-preview-azurelinux3.0-distroless-composite-extra | [Dockerfile](src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/amd64/Dockerfile) | Azure Linux 3.0 + ### Linux arm64 Tags Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.1-noble-arm64v8, 10.0-noble-arm64v8, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0, latest | [Dockerfile](src/aspnet/10.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 +10.0.1-noble-arm64v8, 10.0-noble-arm64v8, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0 | [Dockerfile](src/aspnet/10.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-arm64v8, 10.0-noble-chiseled-arm64v8, 10.0.1-noble-chiseled, 10.0-noble-chiseled | [Dockerfile](src/aspnet/10.0/noble-chiseled/arm64v8/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-extra-arm64v8, 10.0-noble-chiseled-extra-arm64v8, 10.0.1-noble-chiseled-extra, 10.0-noble-chiseled-extra | [Dockerfile](src/aspnet/10.0/noble-chiseled-extra/arm64v8/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-composite-arm64v8, 10.0-noble-chiseled-composite-arm64v8, 10.0.1-noble-chiseled-composite, 10.0-noble-chiseled-composite | [Dockerfile](src/aspnet/10.0/noble-chiseled-composite/arm64v8/Dockerfile) | Ubuntu 24.04 @@ -191,11 +210,28 @@ Tags | Dockerfile | OS Version 8.0.22-azurelinux3.0-distroless-composite-arm64v8, 8.0-azurelinux3.0-distroless-composite-arm64v8, 8.0.22-azurelinux3.0-distroless-composite, 8.0-azurelinux3.0-distroless-composite | [Dockerfile](src/aspnet/8.0/azurelinux3.0-distroless-composite/arm64v8/Dockerfile) | Azure Linux 3.0 8.0.22-azurelinux3.0-distroless-composite-extra-arm64v8, 8.0-azurelinux3.0-distroless-composite-extra-arm64v8, 8.0.22-azurelinux3.0-distroless-composite-extra, 8.0-azurelinux3.0-distroless-composite-extra | [Dockerfile](src/aspnet/8.0/azurelinux3.0-distroless-composite-extra/arm64v8/Dockerfile) | Azure Linux 3.0 +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.0-alpha.1-resolute-arm64v8, 11.0-preview-resolute-arm64v8, 11.0.0-alpha.1-resolute, 11.0-preview-resolute, 11.0.0-alpha.1, 11.0-preview, latest | [Dockerfile](src/aspnet/11.0/resolute/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-arm64v8, 11.0-preview-resolute-chiseled-arm64v8, 11.0.0-alpha.1-resolute-chiseled, 11.0-preview-resolute-chiseled | [Dockerfile](src/aspnet/11.0/resolute-chiseled/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-extra-arm64v8, 11.0-preview-resolute-chiseled-extra-arm64v8, 11.0.0-alpha.1-resolute-chiseled-extra, 11.0-preview-resolute-chiseled-extra | [Dockerfile](src/aspnet/11.0/resolute-chiseled-extra/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-composite-arm64v8, 11.0-preview-resolute-chiseled-composite-arm64v8, 11.0.0-alpha.1-resolute-chiseled-composite, 11.0-preview-resolute-chiseled-composite | [Dockerfile](src/aspnet/11.0/resolute-chiseled-composite/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-composite-extra-arm64v8, 11.0-preview-resolute-chiseled-composite-extra-arm64v8, 11.0.0-alpha.1-resolute-chiseled-composite-extra, 11.0-preview-resolute-chiseled-composite-extra | [Dockerfile](src/aspnet/11.0/resolute-chiseled-composite-extra/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-alpine3.23-arm64v8, 11.0-preview-alpine3.23-arm64v8, 11.0-preview-alpine-arm64v8, 11.0.0-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/aspnet/11.0/alpine3.23/arm64v8/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-alpine3.23-composite-arm64v8, 11.0-preview-alpine3.23-composite-arm64v8, 11.0-preview-alpine-composite-arm64v8, 11.0.0-alpha.1-alpine3.23-composite, 11.0-preview-alpine3.23-composite, 11.0-preview-alpine-composite | [Dockerfile](src/aspnet/11.0/alpine3.23-composite/arm64v8/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-azurelinux3.0-arm64v8, 11.0-preview-azurelinux3.0-arm64v8, 11.0.0-alpha.1-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/aspnet/11.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-arm64v8, 11.0-preview-azurelinux3.0-distroless-arm64v8, 11.0.0-alpha.1-azurelinux3.0-distroless, 11.0-preview-azurelinux3.0-distroless | [Dockerfile](src/aspnet/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-extra-arm64v8, 11.0-preview-azurelinux3.0-distroless-extra-arm64v8, 11.0.0-alpha.1-azurelinux3.0-distroless-extra, 11.0-preview-azurelinux3.0-distroless-extra | [Dockerfile](src/aspnet/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-composite-arm64v8, 11.0-preview-azurelinux3.0-distroless-composite-arm64v8, 11.0.0-alpha.1-azurelinux3.0-distroless-composite, 11.0-preview-azurelinux3.0-distroless-composite | [Dockerfile](src/aspnet/11.0/azurelinux3.0-distroless-composite/arm64v8/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-composite-extra-arm64v8, 11.0-preview-azurelinux3.0-distroless-composite-extra-arm64v8, 11.0.0-alpha.1-azurelinux3.0-distroless-composite-extra, 11.0-preview-azurelinux3.0-distroless-composite-extra | [Dockerfile](src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/arm64v8/Dockerfile) | Azure Linux 3.0 + ### Linux arm32 Tags Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.1-noble-arm32v7, 10.0-noble-arm32v7, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0, latest | [Dockerfile](src/aspnet/10.0/noble/arm32v7/Dockerfile) | Ubuntu 24.04 +10.0.1-noble-arm32v7, 10.0-noble-arm32v7, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0 | [Dockerfile](src/aspnet/10.0/noble/arm32v7/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-arm32v7, 10.0-noble-chiseled-arm32v7, 10.0.1-noble-chiseled, 10.0-noble-chiseled | [Dockerfile](src/aspnet/10.0/noble-chiseled/arm32v7/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-extra-arm32v7, 10.0-noble-chiseled-extra-arm32v7, 10.0.1-noble-chiseled-extra, 10.0-noble-chiseled-extra | [Dockerfile](src/aspnet/10.0/noble-chiseled-extra/arm32v7/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-composite-arm32v7, 10.0-noble-chiseled-composite-arm32v7, 10.0.1-noble-chiseled-composite, 10.0-noble-chiseled-composite | [Dockerfile](src/aspnet/10.0/noble-chiseled-composite/arm32v7/Dockerfile) | Ubuntu 24.04 @@ -225,6 +261,18 @@ Tags | Dockerfile | OS Version 8.0.22-jammy-chiseled-composite-arm32v7, 8.0-jammy-chiseled-composite-arm32v7, 8.0.22-jammy-chiseled-composite, 8.0-jammy-chiseled-composite | [Dockerfile](src/aspnet/8.0/jammy-chiseled-composite/arm32v7/Dockerfile) | Ubuntu 22.04 8.0.22-jammy-chiseled-composite-extra-arm32v7, 8.0-jammy-chiseled-composite-extra-arm32v7, 8.0.22-jammy-chiseled-composite-extra, 8.0-jammy-chiseled-composite-extra | [Dockerfile](src/aspnet/8.0/jammy-chiseled-composite-extra/arm32v7/Dockerfile) | Ubuntu 22.04 +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.0-alpha.1-resolute-arm32v7, 11.0-preview-resolute-arm32v7, 11.0.0-alpha.1-resolute, 11.0-preview-resolute, 11.0.0-alpha.1, 11.0-preview, latest | [Dockerfile](src/aspnet/11.0/resolute/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-arm32v7, 11.0-preview-resolute-chiseled-arm32v7, 11.0.0-alpha.1-resolute-chiseled, 11.0-preview-resolute-chiseled | [Dockerfile](src/aspnet/11.0/resolute-chiseled/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-extra-arm32v7, 11.0-preview-resolute-chiseled-extra-arm32v7, 11.0.0-alpha.1-resolute-chiseled-extra, 11.0-preview-resolute-chiseled-extra | [Dockerfile](src/aspnet/11.0/resolute-chiseled-extra/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-composite-arm32v7, 11.0-preview-resolute-chiseled-composite-arm32v7, 11.0.0-alpha.1-resolute-chiseled-composite, 11.0-preview-resolute-chiseled-composite | [Dockerfile](src/aspnet/11.0/resolute-chiseled-composite/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-composite-extra-arm32v7, 11.0-preview-resolute-chiseled-composite-extra-arm32v7, 11.0.0-alpha.1-resolute-chiseled-composite-extra, 11.0-preview-resolute-chiseled-composite-extra | [Dockerfile](src/aspnet/11.0/resolute-chiseled-composite-extra/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-alpine3.23-arm32v7, 11.0-preview-alpine3.23-arm32v7, 11.0-preview-alpine-arm32v7, 11.0.0-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/aspnet/11.0/alpine3.23/arm32v7/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-alpine3.23-composite-arm32v7, 11.0-preview-alpine3.23-composite-arm32v7, 11.0-preview-alpine-composite-arm32v7, 11.0.0-alpha.1-alpine3.23-composite, 11.0-preview-alpine3.23-composite, 11.0-preview-alpine-composite | [Dockerfile](src/aspnet/11.0/alpine3.23-composite/arm32v7/Dockerfile) | Alpine 3.23 + ### Nano Server 2025 amd64 Tags Tag | Dockerfile @@ -233,6 +281,12 @@ Tag | Dockerfile 9.0.11-nanoserver-ltsc2025, 9.0-nanoserver-ltsc2025 | [Dockerfile](src/aspnet/9.0/nanoserver-ltsc2025/amd64/Dockerfile) 8.0.22-nanoserver-ltsc2025, 8.0-nanoserver-ltsc2025 | [Dockerfile](src/aspnet/8.0/nanoserver-ltsc2025/amd64/Dockerfile) +#### .NET 11 Preview Tags + +Tag | Dockerfile +---------| --------------- +11.0.0-alpha.1-nanoserver-ltsc2025, 11.0-preview-nanoserver-ltsc2025 | [Dockerfile](src/aspnet/11.0/nanoserver-ltsc2025/amd64/Dockerfile) + ### Windows Server Core 2025 amd64 Tags Tag | Dockerfile @@ -241,6 +295,12 @@ Tag | Dockerfile 9.0.11-windowsservercore-ltsc2025, 9.0-windowsservercore-ltsc2025 | [Dockerfile](src/aspnet/9.0/windowsservercore-ltsc2025/amd64/Dockerfile) 8.0.22-windowsservercore-ltsc2025, 8.0-windowsservercore-ltsc2025 | [Dockerfile](src/aspnet/8.0/windowsservercore-ltsc2025/amd64/Dockerfile) +#### .NET 11 Preview Tags + +Tag | Dockerfile +---------| --------------- +11.0.0-alpha.1-windowsservercore-ltsc2025, 11.0-preview-windowsservercore-ltsc2025 | [Dockerfile](src/aspnet/11.0/windowsservercore-ltsc2025/amd64/Dockerfile) + ### Nano Server 2022 amd64 Tags Tag | Dockerfile diff --git a/README.runtime-deps.md b/README.runtime-deps.md index 3387596e49..fe8838d398 100644 --- a/README.runtime-deps.md +++ b/README.runtime-deps.md @@ -6,6 +6,8 @@ ## Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/runtime-deps:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/runtime-deps:10.0` * `9.0` (Standard Support) @@ -69,7 +71,7 @@ They contain the following features: Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.1-noble-amd64, 10.0-noble-amd64, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0, latest | [Dockerfile](src/runtime-deps/10.0/noble/amd64/Dockerfile) | Ubuntu 24.04 +10.0.1-noble-amd64, 10.0-noble-amd64, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0 | [Dockerfile](src/runtime-deps/10.0/noble/amd64/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-amd64, 10.0-noble-chiseled-amd64, 10.0.1-noble-chiseled, 10.0-noble-chiseled | [Dockerfile](src/runtime-deps/10.0/noble-chiseled/amd64/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-extra-amd64, 10.0-noble-chiseled-extra-amd64, 10.0.1-noble-chiseled-extra, 10.0-noble-chiseled-extra | [Dockerfile](src/runtime-deps/10.0/noble-chiseled-extra/amd64/Dockerfile) | Ubuntu 24.04 10.0.1-alpine3.22-amd64, 10.0-alpine3.22-amd64, 10.0-alpine-amd64, 10.0.1-alpine3.22, 10.0-alpine3.22, 10.0-alpine | [Dockerfile](src/runtime-deps/10.0/alpine3.22/amd64/Dockerfile) | Alpine 3.22 @@ -105,11 +107,24 @@ Tags | Dockerfile | OS Version 8.0.22-azurelinux3.0-distroless-amd64, 8.0-azurelinux3.0-distroless-amd64, 8.0.22-azurelinux3.0-distroless, 8.0-azurelinux3.0-distroless | [Dockerfile](src/runtime-deps/8.0/azurelinux3.0-distroless/amd64/Dockerfile) | Azure Linux 3.0 8.0.22-azurelinux3.0-distroless-extra-amd64, 8.0-azurelinux3.0-distroless-extra-amd64, 8.0.22-azurelinux3.0-distroless-extra, 8.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime-deps/8.0/azurelinux3.0-distroless-extra/amd64/Dockerfile) | Azure Linux 3.0 +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.0-alpha.1-resolute-amd64, 11.0-preview-resolute-amd64, 11.0.0-alpha.1-resolute, 11.0-preview-resolute, 11.0.0-alpha.1, 11.0-preview, latest | [Dockerfile](src/runtime-deps/11.0/resolute/amd64/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-amd64, 11.0-preview-resolute-chiseled-amd64, 11.0.0-alpha.1-resolute-chiseled, 11.0-preview-resolute-chiseled | [Dockerfile](src/runtime-deps/11.0/resolute-chiseled/amd64/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-extra-amd64, 11.0-preview-resolute-chiseled-extra-amd64, 11.0.0-alpha.1-resolute-chiseled-extra, 11.0-preview-resolute-chiseled-extra | [Dockerfile](src/runtime-deps/11.0/resolute-chiseled-extra/amd64/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-alpine3.23-amd64, 11.0-preview-alpine3.23-amd64, 11.0-preview-alpine-amd64, 11.0.0-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/runtime-deps/11.0/alpine3.23/amd64/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-alpine3.23-extra-amd64, 11.0-preview-alpine3.23-extra-amd64, 11.0-preview-alpine-extra-amd64, 11.0.0-alpha.1-alpine3.23-extra, 11.0-preview-alpine3.23-extra, 11.0-preview-alpine-extra | [Dockerfile](src/runtime-deps/11.0/alpine3.23-extra/amd64/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-azurelinux3.0-amd64, 11.0-preview-azurelinux3.0-amd64, 11.0.0-alpha.1-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/runtime-deps/11.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-amd64, 11.0-preview-azurelinux3.0-distroless-amd64, 11.0.0-alpha.1-azurelinux3.0-distroless, 11.0-preview-azurelinux3.0-distroless | [Dockerfile](src/runtime-deps/11.0/azurelinux3.0-distroless/amd64/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-extra-amd64, 11.0-preview-azurelinux3.0-distroless-extra-amd64, 11.0.0-alpha.1-azurelinux3.0-distroless-extra, 11.0-preview-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime-deps/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile) | Azure Linux 3.0 + ### Linux arm64 Tags Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.1-noble-arm64v8, 10.0-noble-arm64v8, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0, latest | [Dockerfile](src/runtime-deps/10.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 +10.0.1-noble-arm64v8, 10.0-noble-arm64v8, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0 | [Dockerfile](src/runtime-deps/10.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-arm64v8, 10.0-noble-chiseled-arm64v8, 10.0.1-noble-chiseled, 10.0-noble-chiseled | [Dockerfile](src/runtime-deps/10.0/noble-chiseled/arm64v8/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-extra-arm64v8, 10.0-noble-chiseled-extra-arm64v8, 10.0.1-noble-chiseled-extra, 10.0-noble-chiseled-extra | [Dockerfile](src/runtime-deps/10.0/noble-chiseled-extra/arm64v8/Dockerfile) | Ubuntu 24.04 10.0.1-alpine3.22-arm64v8, 10.0-alpine3.22-arm64v8, 10.0-alpine-arm64v8, 10.0.1-alpine3.22, 10.0-alpine3.22, 10.0-alpine | [Dockerfile](src/runtime-deps/10.0/alpine3.22/arm64v8/Dockerfile) | Alpine 3.22 @@ -145,11 +160,24 @@ Tags | Dockerfile | OS Version 8.0.22-azurelinux3.0-distroless-arm64v8, 8.0-azurelinux3.0-distroless-arm64v8, 8.0.22-azurelinux3.0-distroless, 8.0-azurelinux3.0-distroless | [Dockerfile](src/runtime-deps/8.0/azurelinux3.0-distroless/arm64v8/Dockerfile) | Azure Linux 3.0 8.0.22-azurelinux3.0-distroless-extra-arm64v8, 8.0-azurelinux3.0-distroless-extra-arm64v8, 8.0.22-azurelinux3.0-distroless-extra, 8.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime-deps/8.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 3.0 +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.0-alpha.1-resolute-arm64v8, 11.0-preview-resolute-arm64v8, 11.0.0-alpha.1-resolute, 11.0-preview-resolute, 11.0.0-alpha.1, 11.0-preview, latest | [Dockerfile](src/runtime-deps/11.0/resolute/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-arm64v8, 11.0-preview-resolute-chiseled-arm64v8, 11.0.0-alpha.1-resolute-chiseled, 11.0-preview-resolute-chiseled | [Dockerfile](src/runtime-deps/11.0/resolute-chiseled/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-extra-arm64v8, 11.0-preview-resolute-chiseled-extra-arm64v8, 11.0.0-alpha.1-resolute-chiseled-extra, 11.0-preview-resolute-chiseled-extra | [Dockerfile](src/runtime-deps/11.0/resolute-chiseled-extra/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-alpine3.23-arm64v8, 11.0-preview-alpine3.23-arm64v8, 11.0-preview-alpine-arm64v8, 11.0.0-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/runtime-deps/11.0/alpine3.23/arm64v8/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-alpine3.23-extra-arm64v8, 11.0-preview-alpine3.23-extra-arm64v8, 11.0-preview-alpine-extra-arm64v8, 11.0.0-alpha.1-alpine3.23-extra, 11.0-preview-alpine3.23-extra, 11.0-preview-alpine-extra | [Dockerfile](src/runtime-deps/11.0/alpine3.23-extra/arm64v8/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-azurelinux3.0-arm64v8, 11.0-preview-azurelinux3.0-arm64v8, 11.0.0-alpha.1-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/runtime-deps/11.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-arm64v8, 11.0-preview-azurelinux3.0-distroless-arm64v8, 11.0.0-alpha.1-azurelinux3.0-distroless, 11.0-preview-azurelinux3.0-distroless | [Dockerfile](src/runtime-deps/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-extra-arm64v8, 11.0-preview-azurelinux3.0-distroless-extra-arm64v8, 11.0.0-alpha.1-azurelinux3.0-distroless-extra, 11.0-preview-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime-deps/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 3.0 + ### Linux arm32 Tags Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.1-noble-arm32v7, 10.0-noble-arm32v7, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0, latest | [Dockerfile](src/runtime-deps/10.0/noble/arm32v7/Dockerfile) | Ubuntu 24.04 +10.0.1-noble-arm32v7, 10.0-noble-arm32v7, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0 | [Dockerfile](src/runtime-deps/10.0/noble/arm32v7/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-arm32v7, 10.0-noble-chiseled-arm32v7, 10.0.1-noble-chiseled, 10.0-noble-chiseled | [Dockerfile](src/runtime-deps/10.0/noble-chiseled/arm32v7/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-extra-arm32v7, 10.0-noble-chiseled-extra-arm32v7, 10.0.1-noble-chiseled-extra, 10.0-noble-chiseled-extra | [Dockerfile](src/runtime-deps/10.0/noble-chiseled-extra/arm32v7/Dockerfile) | Ubuntu 24.04 10.0.1-alpine3.22-arm32v7, 10.0-alpine3.22-arm32v7, 10.0-alpine-arm32v7, 10.0.1-alpine3.22, 10.0-alpine3.22, 10.0-alpine | [Dockerfile](src/runtime-deps/10.0/alpine3.22/arm32v7/Dockerfile) | Alpine 3.22 @@ -172,6 +200,16 @@ Tags | Dockerfile | OS Version 8.0.22-jammy-arm32v7, 8.0-jammy-arm32v7, 8.0.22-jammy, 8.0-jammy | [Dockerfile](src/runtime-deps/8.0/jammy/arm32v7/Dockerfile) | Ubuntu 22.04 8.0.22-jammy-chiseled-arm32v7, 8.0-jammy-chiseled-arm32v7, 8.0.22-jammy-chiseled, 8.0-jammy-chiseled | [Dockerfile](src/runtime-deps/8.0/jammy-chiseled/arm32v7/Dockerfile) | Ubuntu 22.04 8.0.22-jammy-chiseled-extra-arm32v7, 8.0-jammy-chiseled-extra-arm32v7, 8.0.22-jammy-chiseled-extra, 8.0-jammy-chiseled-extra | [Dockerfile](src/runtime-deps/8.0/jammy-chiseled-extra/arm32v7/Dockerfile) | Ubuntu 22.04 + +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.0-alpha.1-resolute-arm32v7, 11.0-preview-resolute-arm32v7, 11.0.0-alpha.1-resolute, 11.0-preview-resolute, 11.0.0-alpha.1, 11.0-preview, latest | [Dockerfile](src/runtime-deps/11.0/resolute/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-arm32v7, 11.0-preview-resolute-chiseled-arm32v7, 11.0.0-alpha.1-resolute-chiseled, 11.0-preview-resolute-chiseled | [Dockerfile](src/runtime-deps/11.0/resolute-chiseled/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-extra-arm32v7, 11.0-preview-resolute-chiseled-extra-arm32v7, 11.0.0-alpha.1-resolute-chiseled-extra, 11.0-preview-resolute-chiseled-extra | [Dockerfile](src/runtime-deps/11.0/resolute-chiseled-extra/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-alpine3.23-arm32v7, 11.0-preview-alpine3.23-arm32v7, 11.0-preview-alpine-arm32v7, 11.0.0-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/runtime-deps/11.0/alpine3.23/arm32v7/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-alpine3.23-extra-arm32v7, 11.0-preview-alpine3.23-extra-arm32v7, 11.0-preview-alpine-extra-arm32v7, 11.0.0-alpha.1-alpine3.23-extra, 11.0-preview-alpine3.23-extra, 11.0-preview-alpine-extra | [Dockerfile](src/runtime-deps/11.0/alpine3.23-extra/arm32v7/Dockerfile) | Alpine 3.23 *Tags not listed in the table above are not supported. See the [Supported Tags Policy](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-tags.md). See the [full list of tags](https://mcr.microsoft.com/v2/dotnet/nightly/runtime-deps/tags/list) for all supported and unsupported tags.* diff --git a/README.runtime.md b/README.runtime.md index d4d093dd6e..e599e0f13f 100644 --- a/README.runtime.md +++ b/README.runtime.md @@ -6,6 +6,8 @@ ## Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/runtime:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/runtime:10.0` * `9.0` (Standard Support) @@ -76,7 +78,7 @@ They contain the following features: Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.1-noble-amd64, 10.0-noble-amd64, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0, latest | [Dockerfile](src/runtime/10.0/noble/amd64/Dockerfile) | Ubuntu 24.04 +10.0.1-noble-amd64, 10.0-noble-amd64, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0 | [Dockerfile](src/runtime/10.0/noble/amd64/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-amd64, 10.0-noble-chiseled-amd64, 10.0.1-noble-chiseled, 10.0-noble-chiseled | [Dockerfile](src/runtime/10.0/noble-chiseled/amd64/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-extra-amd64, 10.0-noble-chiseled-extra-amd64, 10.0.1-noble-chiseled-extra, 10.0-noble-chiseled-extra | [Dockerfile](src/runtime/10.0/noble-chiseled-extra/amd64/Dockerfile) | Ubuntu 24.04 10.0.1-alpine3.22-amd64, 10.0-alpine3.22-amd64, 10.0-alpine-amd64, 10.0.1-alpine3.22, 10.0-alpine3.22, 10.0-alpine | [Dockerfile](src/runtime/10.0/alpine3.22/amd64/Dockerfile) | Alpine 3.22 @@ -106,11 +108,23 @@ Tags | Dockerfile | OS Version 8.0.22-azurelinux3.0-distroless-amd64, 8.0-azurelinux3.0-distroless-amd64, 8.0.22-azurelinux3.0-distroless, 8.0-azurelinux3.0-distroless | [Dockerfile](src/runtime/8.0/azurelinux3.0-distroless/amd64/Dockerfile) | Azure Linux 3.0 8.0.22-azurelinux3.0-distroless-extra-amd64, 8.0-azurelinux3.0-distroless-extra-amd64, 8.0.22-azurelinux3.0-distroless-extra, 8.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime/8.0/azurelinux3.0-distroless-extra/amd64/Dockerfile) | Azure Linux 3.0 +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.0-alpha.1-resolute-amd64, 11.0-preview-resolute-amd64, 11.0.0-alpha.1-resolute, 11.0-preview-resolute, 11.0.0-alpha.1, 11.0-preview, latest | [Dockerfile](src/runtime/11.0/resolute/amd64/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-amd64, 11.0-preview-resolute-chiseled-amd64, 11.0.0-alpha.1-resolute-chiseled, 11.0-preview-resolute-chiseled | [Dockerfile](src/runtime/11.0/resolute-chiseled/amd64/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-extra-amd64, 11.0-preview-resolute-chiseled-extra-amd64, 11.0.0-alpha.1-resolute-chiseled-extra, 11.0-preview-resolute-chiseled-extra | [Dockerfile](src/runtime/11.0/resolute-chiseled-extra/amd64/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-alpine3.23-amd64, 11.0-preview-alpine3.23-amd64, 11.0-preview-alpine-amd64, 11.0.0-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/runtime/11.0/alpine3.23/amd64/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-azurelinux3.0-amd64, 11.0-preview-azurelinux3.0-amd64, 11.0.0-alpha.1-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/runtime/11.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-amd64, 11.0-preview-azurelinux3.0-distroless-amd64, 11.0.0-alpha.1-azurelinux3.0-distroless, 11.0-preview-azurelinux3.0-distroless | [Dockerfile](src/runtime/11.0/azurelinux3.0-distroless/amd64/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-extra-amd64, 11.0-preview-azurelinux3.0-distroless-extra-amd64, 11.0.0-alpha.1-azurelinux3.0-distroless-extra, 11.0-preview-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile) | Azure Linux 3.0 + ### Linux arm64 Tags Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.1-noble-arm64v8, 10.0-noble-arm64v8, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0, latest | [Dockerfile](src/runtime/10.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 +10.0.1-noble-arm64v8, 10.0-noble-arm64v8, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0 | [Dockerfile](src/runtime/10.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-arm64v8, 10.0-noble-chiseled-arm64v8, 10.0.1-noble-chiseled, 10.0-noble-chiseled | [Dockerfile](src/runtime/10.0/noble-chiseled/arm64v8/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-extra-arm64v8, 10.0-noble-chiseled-extra-arm64v8, 10.0.1-noble-chiseled-extra, 10.0-noble-chiseled-extra | [Dockerfile](src/runtime/10.0/noble-chiseled-extra/arm64v8/Dockerfile) | Ubuntu 24.04 10.0.1-alpine3.22-arm64v8, 10.0-alpine3.22-arm64v8, 10.0-alpine-arm64v8, 10.0.1-alpine3.22, 10.0-alpine3.22, 10.0-alpine | [Dockerfile](src/runtime/10.0/alpine3.22/arm64v8/Dockerfile) | Alpine 3.22 @@ -140,11 +154,23 @@ Tags | Dockerfile | OS Version 8.0.22-azurelinux3.0-distroless-arm64v8, 8.0-azurelinux3.0-distroless-arm64v8, 8.0.22-azurelinux3.0-distroless, 8.0-azurelinux3.0-distroless | [Dockerfile](src/runtime/8.0/azurelinux3.0-distroless/arm64v8/Dockerfile) | Azure Linux 3.0 8.0.22-azurelinux3.0-distroless-extra-arm64v8, 8.0-azurelinux3.0-distroless-extra-arm64v8, 8.0.22-azurelinux3.0-distroless-extra, 8.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime/8.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 3.0 +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.0-alpha.1-resolute-arm64v8, 11.0-preview-resolute-arm64v8, 11.0.0-alpha.1-resolute, 11.0-preview-resolute, 11.0.0-alpha.1, 11.0-preview, latest | [Dockerfile](src/runtime/11.0/resolute/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-arm64v8, 11.0-preview-resolute-chiseled-arm64v8, 11.0.0-alpha.1-resolute-chiseled, 11.0-preview-resolute-chiseled | [Dockerfile](src/runtime/11.0/resolute-chiseled/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-extra-arm64v8, 11.0-preview-resolute-chiseled-extra-arm64v8, 11.0.0-alpha.1-resolute-chiseled-extra, 11.0-preview-resolute-chiseled-extra | [Dockerfile](src/runtime/11.0/resolute-chiseled-extra/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-alpine3.23-arm64v8, 11.0-preview-alpine3.23-arm64v8, 11.0-preview-alpine-arm64v8, 11.0.0-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/runtime/11.0/alpine3.23/arm64v8/Dockerfile) | Alpine 3.23 +11.0.0-alpha.1-azurelinux3.0-arm64v8, 11.0-preview-azurelinux3.0-arm64v8, 11.0.0-alpha.1-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/runtime/11.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-arm64v8, 11.0-preview-azurelinux3.0-distroless-arm64v8, 11.0.0-alpha.1-azurelinux3.0-distroless, 11.0-preview-azurelinux3.0-distroless | [Dockerfile](src/runtime/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile) | Azure Linux 3.0 +11.0.0-alpha.1-azurelinux3.0-distroless-extra-arm64v8, 11.0-preview-azurelinux3.0-distroless-extra-arm64v8, 11.0.0-alpha.1-azurelinux3.0-distroless-extra, 11.0-preview-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 3.0 + ### Linux arm32 Tags Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.1-noble-arm32v7, 10.0-noble-arm32v7, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0, latest | [Dockerfile](src/runtime/10.0/noble/arm32v7/Dockerfile) | Ubuntu 24.04 +10.0.1-noble-arm32v7, 10.0-noble-arm32v7, 10.0.1-noble, 10.0-noble, 10.0.1, 10.0 | [Dockerfile](src/runtime/10.0/noble/arm32v7/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-arm32v7, 10.0-noble-chiseled-arm32v7, 10.0.1-noble-chiseled, 10.0-noble-chiseled | [Dockerfile](src/runtime/10.0/noble-chiseled/arm32v7/Dockerfile) | Ubuntu 24.04 10.0.1-noble-chiseled-extra-arm32v7, 10.0-noble-chiseled-extra-arm32v7, 10.0.1-noble-chiseled-extra, 10.0-noble-chiseled-extra | [Dockerfile](src/runtime/10.0/noble-chiseled-extra/arm32v7/Dockerfile) | Ubuntu 24.04 10.0.1-alpine3.22-arm32v7, 10.0-alpine3.22-arm32v7, 10.0-alpine-arm32v7, 10.0.1-alpine3.22, 10.0-alpine3.22, 10.0-alpine | [Dockerfile](src/runtime/10.0/alpine3.22/arm32v7/Dockerfile) | Alpine 3.22 @@ -162,6 +188,15 @@ Tags | Dockerfile | OS Version 8.0.22-jammy-chiseled-arm32v7, 8.0-jammy-chiseled-arm32v7, 8.0.22-jammy-chiseled, 8.0-jammy-chiseled | [Dockerfile](src/runtime/8.0/jammy-chiseled/arm32v7/Dockerfile) | Ubuntu 22.04 8.0.22-jammy-chiseled-extra-arm32v7, 8.0-jammy-chiseled-extra-arm32v7, 8.0.22-jammy-chiseled-extra, 8.0-jammy-chiseled-extra | [Dockerfile](src/runtime/8.0/jammy-chiseled-extra/arm32v7/Dockerfile) | Ubuntu 22.04 +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.0-alpha.1-resolute-arm32v7, 11.0-preview-resolute-arm32v7, 11.0.0-alpha.1-resolute, 11.0-preview-resolute, 11.0.0-alpha.1, 11.0-preview, latest | [Dockerfile](src/runtime/11.0/resolute/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-arm32v7, 11.0-preview-resolute-chiseled-arm32v7, 11.0.0-alpha.1-resolute-chiseled, 11.0-preview-resolute-chiseled | [Dockerfile](src/runtime/11.0/resolute-chiseled/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-resolute-chiseled-extra-arm32v7, 11.0-preview-resolute-chiseled-extra-arm32v7, 11.0.0-alpha.1-resolute-chiseled-extra, 11.0-preview-resolute-chiseled-extra | [Dockerfile](src/runtime/11.0/resolute-chiseled-extra/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.0-alpha.1-alpine3.23-arm32v7, 11.0-preview-alpine3.23-arm32v7, 11.0-preview-alpine-arm32v7, 11.0.0-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/runtime/11.0/alpine3.23/arm32v7/Dockerfile) | Alpine 3.23 + ### Nano Server 2025 amd64 Tags Tag | Dockerfile @@ -170,6 +205,12 @@ Tag | Dockerfile 9.0.11-nanoserver-ltsc2025, 9.0-nanoserver-ltsc2025 | [Dockerfile](src/runtime/9.0/nanoserver-ltsc2025/amd64/Dockerfile) 8.0.22-nanoserver-ltsc2025, 8.0-nanoserver-ltsc2025 | [Dockerfile](src/runtime/8.0/nanoserver-ltsc2025/amd64/Dockerfile) +#### .NET 11 Preview Tags + +Tag | Dockerfile +---------| --------------- +11.0.0-alpha.1-nanoserver-ltsc2025, 11.0-preview-nanoserver-ltsc2025 | [Dockerfile](src/runtime/11.0/nanoserver-ltsc2025/amd64/Dockerfile) + ### Windows Server Core 2025 amd64 Tags Tag | Dockerfile @@ -178,6 +219,12 @@ Tag | Dockerfile 9.0.11-windowsservercore-ltsc2025, 9.0-windowsservercore-ltsc2025 | [Dockerfile](src/runtime/9.0/windowsservercore-ltsc2025/amd64/Dockerfile) 8.0.22-windowsservercore-ltsc2025, 8.0-windowsservercore-ltsc2025 | [Dockerfile](src/runtime/8.0/windowsservercore-ltsc2025/amd64/Dockerfile) +#### .NET 11 Preview Tags + +Tag | Dockerfile +---------| --------------- +11.0.0-alpha.1-windowsservercore-ltsc2025, 11.0-preview-windowsservercore-ltsc2025 | [Dockerfile](src/runtime/11.0/windowsservercore-ltsc2025/amd64/Dockerfile) + ### Nano Server 2022 amd64 Tags Tag | Dockerfile diff --git a/README.sdk.md b/README.sdk.md index 062e27f2e4..5bc71ca098 100644 --- a/README.sdk.md +++ b/README.sdk.md @@ -6,6 +6,8 @@ ## Featured Tags +* `11.0-preview` (Preview) + * `docker pull mcr.microsoft.com/dotnet/nightly/sdk:11.0-preview` * `10.0` (Long-Term Support) * `docker pull mcr.microsoft.com/dotnet/nightly/sdk:10.0` * `9.0` (Standard Support) @@ -72,7 +74,7 @@ The [Image Variants documentation](https://github.com/dotnet/dotnet-docker/blob/ Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.101-noble-amd64, 10.0-noble-amd64, 10.0.101-noble, 10.0-noble, 10.0.101, 10.0, latest | [Dockerfile](src/sdk/10.0/noble/amd64/Dockerfile) | Ubuntu 24.04 +10.0.101-noble-amd64, 10.0-noble-amd64, 10.0.101-noble, 10.0-noble, 10.0.101, 10.0 | [Dockerfile](src/sdk/10.0/noble/amd64/Dockerfile) | Ubuntu 24.04 10.0.101-noble-aot-amd64, 10.0-noble-aot-amd64, 10.0.101-noble-aot, 10.0-noble-aot, 10.0.101-aot, 10.0-aot | [Dockerfile](src/sdk/10.0/noble-aot/amd64/Dockerfile) | Ubuntu 24.04 10.0.101-alpine3.22-amd64, 10.0-alpine3.22-amd64, 10.0-alpine-amd64, 10.0.101-alpine3.22, 10.0-alpine3.22, 10.0-alpine | [Dockerfile](src/sdk/10.0/alpine3.22/amd64/Dockerfile) | Alpine 3.22 10.0.101-alpine3.22-aot-amd64, 10.0-alpine3.22-aot-amd64, 10.0-alpine-aot-amd64, 10.0.101-alpine3.22-aot, 10.0-alpine3.22-aot, 10.0-alpine-aot | [Dockerfile](src/sdk/10.0/alpine3.22-aot/amd64/Dockerfile) | Alpine 3.22 @@ -92,11 +94,22 @@ Tags | Dockerfile | OS Version 8.0.416-jammy-amd64, 8.0-jammy-amd64, 8.0.416-jammy, 8.0-jammy | [Dockerfile](src/sdk/8.0/jammy/amd64/Dockerfile) | Ubuntu 22.04 8.0.416-azurelinux3.0-amd64, 8.0-azurelinux3.0-amd64, 8.0.416-azurelinux3.0, 8.0-azurelinux3.0 | [Dockerfile](src/sdk/8.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.100-alpha.1-resolute-amd64, 11.0-preview-resolute-amd64, 11.0.100-alpha.1-resolute, 11.0-preview-resolute, 11.0.100-alpha.1, 11.0-preview, latest | [Dockerfile](src/sdk/11.0/resolute/amd64/Dockerfile) | Ubuntu 26.04 +11.0.100-alpha.1-resolute-aot-amd64, 11.0-preview-resolute-aot-amd64, 11.0.100-alpha.1-resolute-aot, 11.0-preview-resolute-aot, 11.0.100-alpha.1-aot, 11.0-preview-aot | [Dockerfile](src/sdk/11.0/resolute-aot/amd64/Dockerfile) | Ubuntu 26.04 +11.0.100-alpha.1-alpine3.23-amd64, 11.0-preview-alpine3.23-amd64, 11.0-preview-alpine-amd64, 11.0.100-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/sdk/11.0/alpine3.23/amd64/Dockerfile) | Alpine 3.23 +11.0.100-alpha.1-alpine3.23-aot-amd64, 11.0-preview-alpine3.23-aot-amd64, 11.0-preview-alpine-aot-amd64, 11.0.100-alpha.1-alpine3.23-aot, 11.0-preview-alpine3.23-aot, 11.0-preview-alpine-aot | [Dockerfile](src/sdk/11.0/alpine3.23-aot/amd64/Dockerfile) | Alpine 3.23 +11.0.100-alpha.1-azurelinux3.0-amd64, 11.0-preview-azurelinux3.0-amd64, 11.0.100-alpha.1-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/sdk/11.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 +11.0.100-alpha.1-azurelinux3.0-aot-amd64, 11.0-preview-azurelinux3.0-aot-amd64, 11.0.100-alpha.1-azurelinux3.0-aot, 11.0-preview-azurelinux3.0-aot | [Dockerfile](src/sdk/11.0/azurelinux3.0-aot/amd64/Dockerfile) | Azure Linux 3.0 + ### Linux arm64 Tags Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.101-noble-arm64v8, 10.0-noble-arm64v8, 10.0.101-noble, 10.0-noble, 10.0.101, 10.0, latest | [Dockerfile](src/sdk/10.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 +10.0.101-noble-arm64v8, 10.0-noble-arm64v8, 10.0.101-noble, 10.0-noble, 10.0.101, 10.0 | [Dockerfile](src/sdk/10.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 10.0.101-noble-aot-arm64v8, 10.0-noble-aot-arm64v8, 10.0.101-noble-aot, 10.0-noble-aot, 10.0.101-aot, 10.0-aot | [Dockerfile](src/sdk/10.0/noble-aot/arm64v8/Dockerfile) | Ubuntu 24.04 10.0.101-alpine3.22-arm64v8, 10.0-alpine3.22-arm64v8, 10.0-alpine-arm64v8, 10.0.101-alpine3.22, 10.0-alpine3.22, 10.0-alpine | [Dockerfile](src/sdk/10.0/alpine3.22/arm64v8/Dockerfile) | Alpine 3.22 10.0.101-alpine3.22-aot-arm64v8, 10.0-alpine3.22-aot-arm64v8, 10.0-alpine-aot-arm64v8, 10.0.101-alpine3.22-aot, 10.0-alpine3.22-aot, 10.0-alpine-aot | [Dockerfile](src/sdk/10.0/alpine3.22-aot/arm64v8/Dockerfile) | Alpine 3.22 @@ -116,11 +129,22 @@ Tags | Dockerfile | OS Version 8.0.416-jammy-arm64v8, 8.0-jammy-arm64v8, 8.0.416-jammy, 8.0-jammy | [Dockerfile](src/sdk/8.0/jammy/arm64v8/Dockerfile) | Ubuntu 22.04 8.0.416-azurelinux3.0-arm64v8, 8.0-azurelinux3.0-arm64v8, 8.0.416-azurelinux3.0, 8.0-azurelinux3.0 | [Dockerfile](src/sdk/8.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.100-alpha.1-resolute-arm64v8, 11.0-preview-resolute-arm64v8, 11.0.100-alpha.1-resolute, 11.0-preview-resolute, 11.0.100-alpha.1, 11.0-preview, latest | [Dockerfile](src/sdk/11.0/resolute/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.100-alpha.1-resolute-aot-arm64v8, 11.0-preview-resolute-aot-arm64v8, 11.0.100-alpha.1-resolute-aot, 11.0-preview-resolute-aot, 11.0.100-alpha.1-aot, 11.0-preview-aot | [Dockerfile](src/sdk/11.0/resolute-aot/arm64v8/Dockerfile) | Ubuntu 26.04 +11.0.100-alpha.1-alpine3.23-arm64v8, 11.0-preview-alpine3.23-arm64v8, 11.0-preview-alpine-arm64v8, 11.0.100-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/sdk/11.0/alpine3.23/arm64v8/Dockerfile) | Alpine 3.23 +11.0.100-alpha.1-alpine3.23-aot-arm64v8, 11.0-preview-alpine3.23-aot-arm64v8, 11.0-preview-alpine-aot-arm64v8, 11.0.100-alpha.1-alpine3.23-aot, 11.0-preview-alpine3.23-aot, 11.0-preview-alpine-aot | [Dockerfile](src/sdk/11.0/alpine3.23-aot/arm64v8/Dockerfile) | Alpine 3.23 +11.0.100-alpha.1-azurelinux3.0-arm64v8, 11.0-preview-azurelinux3.0-arm64v8, 11.0.100-alpha.1-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/sdk/11.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 +11.0.100-alpha.1-azurelinux3.0-aot-arm64v8, 11.0-preview-azurelinux3.0-aot-arm64v8, 11.0.100-alpha.1-azurelinux3.0-aot, 11.0-preview-azurelinux3.0-aot | [Dockerfile](src/sdk/11.0/azurelinux3.0-aot/arm64v8/Dockerfile) | Azure Linux 3.0 + ### Linux arm32 Tags Tags | Dockerfile | OS Version -----------| -------------| ------------- -10.0.101-noble-arm32v7, 10.0-noble-arm32v7, 10.0.101-noble, 10.0-noble, 10.0.101, 10.0, latest | [Dockerfile](src/sdk/10.0/noble/arm32v7/Dockerfile) | Ubuntu 24.04 +10.0.101-noble-arm32v7, 10.0-noble-arm32v7, 10.0.101-noble, 10.0-noble, 10.0.101, 10.0 | [Dockerfile](src/sdk/10.0/noble/arm32v7/Dockerfile) | Ubuntu 24.04 10.0.101-alpine3.22-arm32v7, 10.0-alpine3.22-arm32v7, 10.0-alpine-arm32v7, 10.0.101-alpine3.22, 10.0-alpine3.22, 10.0-alpine | [Dockerfile](src/sdk/10.0/alpine3.22/arm32v7/Dockerfile) | Alpine 3.22 10.0.101-alpine3.23-arm32v7, 10.0-alpine3.23-arm32v7, 10.0.101-alpine3.23, 10.0-alpine3.23 | [Dockerfile](src/sdk/10.0/alpine3.23/arm32v7/Dockerfile) | Alpine 3.23 9.0.308-bookworm-slim-arm32v7, 9.0-bookworm-slim-arm32v7, 9.0.308-bookworm-slim, 9.0-bookworm-slim, 9.0.308, 9.0 | [Dockerfile](src/sdk/9.0/bookworm-slim/arm32v7/Dockerfile) | Debian 12 @@ -132,6 +156,13 @@ Tags | Dockerfile | OS Version 8.0.416-alpine3.23-arm32v7, 8.0-alpine3.23-arm32v7, 8.0.416-alpine3.23, 8.0-alpine3.23 | [Dockerfile](src/sdk/8.0/alpine3.23/arm32v7/Dockerfile) | Alpine 3.23 8.0.416-jammy-arm32v7, 8.0-jammy-arm32v7, 8.0.416-jammy, 8.0-jammy | [Dockerfile](src/sdk/8.0/jammy/arm32v7/Dockerfile) | Ubuntu 22.04 +#### .NET 11 Preview Tags + +Tags | Dockerfile | OS Version +-----------| -------------| ------------- +11.0.100-alpha.1-resolute-arm32v7, 11.0-preview-resolute-arm32v7, 11.0.100-alpha.1-resolute, 11.0-preview-resolute, 11.0.100-alpha.1, 11.0-preview, latest | [Dockerfile](src/sdk/11.0/resolute/arm32v7/Dockerfile) | Ubuntu 26.04 +11.0.100-alpha.1-alpine3.23-arm32v7, 11.0-preview-alpine3.23-arm32v7, 11.0-preview-alpine-arm32v7, 11.0.100-alpha.1-alpine3.23, 11.0-preview-alpine3.23, 11.0-preview-alpine | [Dockerfile](src/sdk/11.0/alpine3.23/arm32v7/Dockerfile) | Alpine 3.23 + ### Nano Server 2025 amd64 Tags Tag | Dockerfile @@ -140,6 +171,12 @@ Tag | Dockerfile 9.0.308-nanoserver-ltsc2025, 9.0-nanoserver-ltsc2025 | [Dockerfile](src/sdk/9.0/nanoserver-ltsc2025/amd64/Dockerfile) 8.0.416-nanoserver-ltsc2025, 8.0-nanoserver-ltsc2025 | [Dockerfile](src/sdk/8.0/nanoserver-ltsc2025/amd64/Dockerfile) +#### .NET 11 Preview Tags + +Tag | Dockerfile +---------| --------------- +11.0.100-alpha.1-nanoserver-ltsc2025, 11.0-preview-nanoserver-ltsc2025 | [Dockerfile](src/sdk/11.0/nanoserver-ltsc2025/amd64/Dockerfile) + ### Windows Server Core 2025 amd64 Tags Tag | Dockerfile @@ -148,6 +185,12 @@ Tag | Dockerfile 9.0.308-windowsservercore-ltsc2025, 9.0-windowsservercore-ltsc2025 | [Dockerfile](src/sdk/9.0/windowsservercore-ltsc2025/amd64/Dockerfile) 8.0.416-windowsservercore-ltsc2025, 8.0-windowsservercore-ltsc2025 | [Dockerfile](src/sdk/8.0/windowsservercore-ltsc2025/amd64/Dockerfile) +#### .NET 11 Preview Tags + +Tag | Dockerfile +---------| --------------- +11.0.100-alpha.1-windowsservercore-ltsc2025, 11.0-preview-windowsservercore-ltsc2025 | [Dockerfile](src/sdk/11.0/windowsservercore-ltsc2025/amd64/Dockerfile) + ### Nano Server 2022 amd64 Tags Tag | Dockerfile diff --git a/eng/dockerfile-templates/Dockerfile.download-dotnet b/eng/dockerfile-templates/Dockerfile.download-dotnet index 9cf99ff7d1..d745e77736 100644 --- a/eng/dockerfile-templates/Dockerfile.download-dotnet +++ b/eng/dockerfile-templates/Dockerfile.download-dotnet @@ -45,7 +45,7 @@ Internal/release stable builds will use product versions for both paths and filenames. Public stable builds still use build versions for paths but stable versions for filenames. Public unstable builds use build versions for both paths and filenames. ^ - set isStableVersion to find(buildVersion, "preview") < 0 && find(buildVersion, "rc.") < 0 ^ + set isStableVersion to find(buildVersion, "alpha") < 0 && find(buildVersion, "preview") < 0 && find(buildVersion, "rc.") < 0 ^ set fileVersion to when(isStableVersion, productVersion, buildVersion) ^ set archiveExtension to when(isWindows, ".zip", ".tar.gz") ^ diff --git a/eng/dockerfile-templates/Dockerfile.linux.validate-checksum b/eng/dockerfile-templates/Dockerfile.linux.validate-checksum index e001932dea..219f27fd01 100644 --- a/eng/dockerfile-templates/Dockerfile.linux.validate-checksum +++ b/eng/dockerfile-templates/Dockerfile.linux.validate-checksum @@ -27,9 +27,13 @@ set isAlpine to find(OS_VERSION, "alpine") >= 0 ^ + _ Ubuntu 26.04 (resolute) uses rust-based coreutils (uutils) which has case-sensitive hashsum functions ^ + set isUUtils to find(OS_VERSION_BASE, "resolute") >= 0 ^ + set normalizeCaseFn to when(isUUtils, "| tr 'A-F' 'a-f'", "") ^ + set shaValue to when(ARGS["sha-file"] && ARGS["sha-file-is-bare"], - cat("$(cat ", ARGS["sha-file"],")"), + cat("$(cat ", ARGS["sha-file"], normalizeCaseFn, ")"), when(ARGS["sha-var-name"], cat("$", ARGS["sha-var-name"]), ARGS["sha"])) diff --git a/eng/dockerfile-templates/aspnet/Dockerfile.envs b/eng/dockerfile-templates/aspnet/Dockerfile.envs index f781a195c8..ebabad80de 100644 --- a/eng/dockerfile-templates/aspnet/Dockerfile.envs +++ b/eng/dockerfile-templates/aspnet/Dockerfile.envs @@ -4,7 +4,10 @@ set dotnetVersion to join(slice(split(PRODUCT_VERSION, "."), 0, 2), ".") ^ set buildVersion to VARIABLES[cat("aspnet|", dotnetVersion, "|build-version")] ^ - set isStableBranding to find(buildVersion, "preview") < 0 && find(buildVersion, "rc.") < 0 ^ + set isStableBranding to + find(buildVersion, "alpha") < 0 + && find(buildVersion, "preview") < 0 + && find(buildVersion, "rc.") < 0 ^ set runtimeVersion to when(isStableBranding, VARIABLES[cat("dotnet|", dotnetVersion, "|product-version")], diff --git a/eng/dockerfile-templates/runtime-deps/Dockerfile.chiseled-ubuntu b/eng/dockerfile-templates/runtime-deps/Dockerfile.chiseled-ubuntu index 115a629015..f3dc045f11 100644 --- a/eng/dockerfile-templates/runtime-deps/Dockerfile.chiseled-ubuntu +++ b/eng/dockerfile-templates/runtime-deps/Dockerfile.chiseled-ubuntu @@ -17,7 +17,7 @@ set installerImageTag to cat(ARCH_VERSIONED, "/buildpack-deps:", osVersionBase, "-curl") ^ - set opensslPkg to when(match(osVersionBase, "noble"), "libssl3t64", "libssl3") ^ + set opensslPkg to when(match(osVersionBase, "jammy"), "libssl3", "libssl3t64") ^ set basePkgs to [ "base-files_base", @@ -97,7 +97,7 @@ RUN {{InsertTemplate("Dockerfile.linux.non-root-user-staged", [ RUN mkdir --parents /rootfs/var/lib/dpkg/ \ && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ - --release ubuntu-{{osVersionNumber}} --root /rootfs \{{for index, pkg in pkgs: + --release ubuntu-{{osVersionNumber}}{{if match(osVersionBase, "resolute"): --ignore=unstable}} --root /rootfs \{{for index, pkg in pkgs: {{pkg}}{{if index < len(pkgs) - 1: \}}}} diff --git a/eng/dockerfile-templates/runtime/Dockerfile.envs b/eng/dockerfile-templates/runtime/Dockerfile.envs index c658e10133..8c4cee0ae2 100644 --- a/eng/dockerfile-templates/runtime/Dockerfile.envs +++ b/eng/dockerfile-templates/runtime/Dockerfile.envs @@ -3,11 +3,14 @@ is-standalone (optional): Whether the ENV instruction should be included ^ set dotnetVersion to join(slice(split(PRODUCT_VERSION, "."), 0, 2), ".") ^ - set runtimeVersion to VARIABLES[cat("runtime|", dotnetVersion, "|build-version")] ^ - set isStableBranding to find(buildVersion, "preview") < 0 && find(buildVersion, "rc.") < 0 ^ + set buildVersion to VARIABLES[cat("runtime|", dotnetVersion, "|build-version")] ^ + set isStableBranding to + find(buildVersion, "alpha") < 0 + && find(buildVersion, "preview") < 0 + && find(buildVersion, "rc.") < 0 ^ set runtimeVersion to when(isStableBranding, VARIABLES[cat("dotnet|", dotnetVersion, "|product-version")], - VARIABLES[cat("runtime|", dotnetVersion, "|build-version")]) + buildVersion) }}# .NET Runtime version {{if ARGS["is-standalone"]:ENV }}DOTNET_VERSION={{runtimeVersion}} diff --git a/eng/dockerfile-templates/sdk/Dockerfile.envs b/eng/dockerfile-templates/sdk/Dockerfile.envs index d730fe0e31..d57580f859 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile.envs +++ b/eng/dockerfile-templates/sdk/Dockerfile.envs @@ -4,7 +4,10 @@ set dotnetVersion to join(slice(split(PRODUCT_VERSION, "."), 0, 2), ".") ^ set buildVersion to VARIABLES[cat("sdk|", dotnetVersion, "|build-version")] ^ - set isStableBranding to find(buildVersion, "preview") < 0 && find(buildVersion, "rc.") < 0 ^ + set isStableBranding to + find(buildVersion, "alpha") < 0 + && find(buildVersion, "preview") < 0 + && find(buildVersion, "rc.") < 0 ^ set sdkVersion to when(isStableBranding, VARIABLES[cat("sdk|", dotnetVersion, "|product-version")], diff --git a/eng/mcr-tags-metadata-templates/aspnet-tags.yml b/eng/mcr-tags-metadata-templates/aspnet-tags.yml index 1adf2342ba..0bc2d2a428 100644 --- a/eng/mcr-tags-metadata-templates/aspnet-tags.yml +++ b/eng/mcr-tags-metadata-templates/aspnet-tags.yml @@ -1,4 +1,18 @@ $(McrTagsYmlRepo:aspnet) +$(McrTagsYmlTagGroup:11.0-preview-resolute|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-resolute-chiseled|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-resolute-chiseled-extra|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-resolute-chiseled-composite|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-resolute-chiseled-composite-extra|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-alpine3.23|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-alpine3.23-composite|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0-distroless|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0-distroless-extra|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0-distroless-composite|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0-distroless-composite-extra|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-nanoserver-ltsc2025|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-windowsservercore-ltsc2025|.NET 11 Preview Tags) $(McrTagsYmlTagGroup:10.0-noble) $(McrTagsYmlTagGroup:10.0-noble-chiseled) $(McrTagsYmlTagGroup:10.0-noble-chiseled-extra) diff --git a/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml b/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml index 37649a14fd..8579f67329 100644 --- a/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml +++ b/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml @@ -1,4 +1,12 @@ $(McrTagsYmlRepo:runtime-deps) +$(McrTagsYmlTagGroup:11.0-preview-resolute|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-resolute-chiseled|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-resolute-chiseled-extra|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-alpine3.23|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-alpine3.23-extra|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0-distroless|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0-distroless-extra|.NET 11 Preview Tags) $(McrTagsYmlTagGroup:10.0-noble) $(McrTagsYmlTagGroup:10.0-noble-chiseled) $(McrTagsYmlTagGroup:10.0-noble-chiseled-extra) diff --git a/eng/mcr-tags-metadata-templates/runtime-tags.yml b/eng/mcr-tags-metadata-templates/runtime-tags.yml index 8e91480bf6..f2dd14c973 100644 --- a/eng/mcr-tags-metadata-templates/runtime-tags.yml +++ b/eng/mcr-tags-metadata-templates/runtime-tags.yml @@ -1,4 +1,13 @@ $(McrTagsYmlRepo:runtime) +$(McrTagsYmlTagGroup:11.0-preview-resolute|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-resolute-chiseled|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-resolute-chiseled-extra|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-alpine3.23|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0-distroless|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0-distroless-extra|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-nanoserver-ltsc2025|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-windowsservercore-ltsc2025|.NET 11 Preview Tags) $(McrTagsYmlTagGroup:10.0-noble) $(McrTagsYmlTagGroup:10.0-noble-chiseled) $(McrTagsYmlTagGroup:10.0-noble-chiseled-extra) diff --git a/eng/mcr-tags-metadata-templates/sdk-tags.yml b/eng/mcr-tags-metadata-templates/sdk-tags.yml index 6579cf946b..9d80d03a8b 100644 --- a/eng/mcr-tags-metadata-templates/sdk-tags.yml +++ b/eng/mcr-tags-metadata-templates/sdk-tags.yml @@ -1,4 +1,12 @@ $(McrTagsYmlRepo:sdk) +$(McrTagsYmlTagGroup:11.0-preview-resolute|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-resolute-aot|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-alpine3.23|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-alpine3.23-aot|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux3.0-aot|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-nanoserver-ltsc2025|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-windowsservercore-ltsc2025|.NET 11 Preview Tags) $(McrTagsYmlTagGroup:10.0-noble) $(McrTagsYmlTagGroup:10.0-noble-aot) $(McrTagsYmlTagGroup:10.0-alpine3.22) diff --git a/eng/readme-templates/FeaturedTags.md b/eng/readme-templates/FeaturedTags.md index c16bb0abc6..9befb9cf79 100644 --- a/eng/readme-templates/FeaturedTags.md +++ b/eng/readme-templates/FeaturedTags.md @@ -24,7 +24,9 @@ elif match(REPO, "aspire-dashboard"):* `13` * `docker pull {{FULL_REPO}}:13`^ elif match(REPO, "yarp"):* `2.3-preview` * `docker pull {{FULL_REPO}}:2.3-preview`^ -else:* `10.0` (Long-Term Support) +else:* `11.0-preview` (Preview) + * `docker pull {{FULL_REPO}}:11.0-preview` +* `10.0` (Long-Term Support) * `docker pull {{FULL_REPO}}:10.0` * `9.0` (Standard Support) * `docker pull {{FULL_REPO}}:9.0` diff --git a/manifest.json b/manifest.json index 30e22451ec..d6e7f89172 100644 --- a/manifest.json +++ b/manifest.json @@ -1829,8 +1829,7 @@ "$(dotnet|10.0|fixed-tag)-noble": {}, "$(dotnet|10.0|minor-tag)-noble": {}, "$(dotnet|10.0|fixed-tag)": {}, - "$(dotnet|10.0|minor-tag)": {}, - "latest": {} + "$(dotnet|10.0|minor-tag)": {} }, "platforms": [ { @@ -2385,268 +2384,240 @@ ] } ] - } - ] - }, - { - "id": "runtime", - "name": "dotnet/nightly/runtime", - "readmes": [ - { - "path": "README.runtime.md", - "templatePath": "eng/readme-templates/README.github.md" - }, - { - "path": ".portal-docs/docker-hub/README.runtime.md", - "templatePath": "eng/readme-templates/README.dockerhub.md" }, { - "path": ".portal-docs/mar/README.runtime.portal.md", - "templatePath": "eng/readme-templates/README.mcr.md" - } - ], - "mcrTagsMetadataTemplate": "eng/mcr-tags-metadata-templates/runtime-tags.yml", - "images": [ - { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-bookworm-slim": {}, - "$(dotnet|8.0|minor-tag)-bookworm-slim": {}, - "$(dotnet|8.0|fixed-tag)": {}, - "$(dotnet|8.0|minor-tag)": {} + "$(dotnet|11.0|fixed-tag)-resolute": {}, + "$(dotnet|11.0|minor-tag)-resolute": {}, + "$(dotnet|11.0|fixed-tag)": {}, + "$(dotnet|11.0|minor-tag)": {}, + "latest": {} }, "platforms": [ { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/bookworm-slim/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/resolute/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", "os": "linux", - "osVersion": "bookworm-slim", + "osVersion": "resolute", "tags": { - "$(dotnet|8.0|fixed-tag)-bookworm-slim-amd64": {}, - "$(dotnet|8.0|minor-tag)-bookworm-slim-amd64": {} + "$(dotnet|11.0|fixed-tag)-resolute-amd64": {}, + "$(dotnet|11.0|minor-tag)-resolute-amd64": {} } }, { "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/bookworm-slim/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/resolute/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", "os": "linux", - "osVersion": "bookworm-slim", + "osVersion": "resolute", "tags": { - "$(dotnet|8.0|fixed-tag)-bookworm-slim-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-bookworm-slim-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-resolute-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-resolute-arm32v7": {} }, "variant": "v7" }, { "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/bookworm-slim/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/resolute/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", "os": "linux", - "osVersion": "bookworm-slim", + "osVersion": "resolute", "tags": { - "$(dotnet|8.0|fixed-tag)-bookworm-slim-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-bookworm-slim-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-resolute-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-resolute-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22": {}, - "$(dotnet|8.0|minor-tag)-alpine": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23": {}, + "$(dotnet|11.0|minor-tag)-alpine": {} }, "platforms": [ { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/alpine3.22/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/alpine3.23/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22-amd64": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22-amd64": {}, - "$(dotnet|8.0|minor-tag)-alpine-amd64": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-amd64": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-amd64": {}, + "$(dotnet|11.0|minor-tag)-alpine-amd64": {} } }, { "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/alpine3.22/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/alpine3.23/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-alpine-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-alpine-arm32v7": {} }, "variant": "v7" }, { "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/alpine3.22/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/alpine3.23/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-alpine-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-extra": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-extra": {}, + "$(dotnet|11.0|minor-tag)-alpine-extra": {} }, "platforms": [ { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/alpine3.23/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/alpine3.23-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.extra", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23-amd64": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23-amd64": {} - } + "$(dotnet|11.0|fixed-tag)-alpine3.23-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-alpine-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-alpine3.23-amd64" + ] + } + ] }, { "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/alpine3.23/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/alpine3.23-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.extra", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-extra-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-extra-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-alpine-extra-arm32v7": {} }, - "variant": "v7" + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-alpine3.23-arm32v7" + ] + } + ] }, { "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/alpine3.23/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/alpine3.23-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.extra", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine-extra-arm64v8": {} }, - "variant": "v8" + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-alpine3.23-arm64v8" + ] + } + ] } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-noble": {}, - "$(dotnet|8.0|minor-tag)-noble": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0": {} }, "platforms": [ { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/noble/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/azurelinux3.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", "os": "linux", - "osVersion": "noble", + "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-amd64": {}, - "$(dotnet|8.0|minor-tag)-noble-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-amd64": {} } }, { "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/noble/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/azurelinux3.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", "os": "linux", - "osVersion": "noble", + "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-noble-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless": {} }, "platforms": [ { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/noble-chiseled/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/azurelinux3.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-mariner", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-amd64": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] } ] }, { "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/noble-chiseled/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/azurelinux3.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-mariner", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -2654,7 +2625,7 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -2662,68 +2633,48 @@ ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-extra": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra": {} }, "platforms": [ { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/noble-chiseled-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/runtime-deps/11.0/azurelinux3.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-mariner.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra-amd64": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-extra-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} }, "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-amd64" - ] - }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:runtime):8.0-noble-chiseled-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] } ] }, { "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/noble-chiseled-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/runtime-deps/11.0/azurelinux3.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-mariner.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-extra-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-arm64v8" - ] - }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:runtime):8.0-noble-chiseled-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -2731,122 +2682,75 @@ ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-jammy": {}, - "$(dotnet|8.0|minor-tag)-jammy": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled": {} }, "platforms": [ { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/jammy/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/resolute-chiseled/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.chiseled-ubuntu", "os": "linux", - "osVersion": "jammy", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-amd64": {}, - "$(dotnet|8.0|minor-tag)-jammy-amd64": {} - } - }, - { - "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/jammy/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "jammy", - "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-jammy-arm32v7": {} - }, - "variant": "v7" - }, - { - "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/jammy/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "jammy", - "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-jammy-arm64v8": {} - }, - "variant": "v8" - } - ] - }, - { - "productVersion": "$(dotnet|8.0|product-version)", - "sharedTags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled": {} - }, - "platforms": [ - { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/jammy-chiseled/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "jammy-chiseled", - "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-amd64": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-amd64": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-amd64": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-amd64": {} }, "customBuildLegGroups": [ + { + "name": "test-dependencies", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-amd64" + ] + }, { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-amd64" ] } ] }, { "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/jammy-chiseled/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/resolute-chiseled/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.chiseled-ubuntu", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ + { + "name": "test-dependencies", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm64v8" + ] + }, { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm64v8" ] } ] }, { "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/jammy-chiseled/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime-deps/11.0/resolute-chiseled/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.chiseled-ubuntu", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-arm32v7": {} }, "variant": "v7", "customBuildLegGroups": [ @@ -2854,7 +2758,7 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm32v7" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm32v7" ] } ] @@ -2862,158 +2766,145 @@ ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra": {} }, "platforms": [ { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/jammy-chiseled-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/runtime-deps/11.0/resolute-chiseled-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.chiseled-ubuntu.extra", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-amd64": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-amd64": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra-amd64": {} }, "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-amd64" - ] - }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:runtime):8.0-jammy-chiseled-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-amd64" ] } ] }, { "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/jammy-chiseled-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/runtime-deps/11.0/resolute-chiseled-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.chiseled-ubuntu.extra", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm64v8" - ] - }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:runtime):8.0-jammy-chiseled-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm64v8" ] } ] }, { "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/8.0/jammy-chiseled-extra/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/runtime-deps/11.0/resolute-chiseled-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.chiseled-ubuntu.extra", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra-arm32v7": {} }, "variant": "v7", "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm32v7" - ] - }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:runtime):8.0-jammy-chiseled-arm32v7" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm32v7" ] } ] } ] + } + ] + }, + { + "id": "runtime", + "name": "dotnet/nightly/runtime", + "readmes": [ + { + "path": "README.runtime.md", + "templatePath": "eng/readme-templates/README.github.md" + }, + { + "path": ".portal-docs/docker-hub/README.runtime.md", + "templatePath": "eng/readme-templates/README.dockerhub.md" }, + { + "path": ".portal-docs/mar/README.runtime.portal.md", + "templatePath": "eng/readme-templates/README.mcr.md" + } + ], + "mcrTagsMetadataTemplate": "eng/mcr-tags-metadata-templates/runtime-tags.yml", + "images": [ { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner": { - "docType": "Undocumented" - } + "$(dotnet|8.0|fixed-tag)-bookworm-slim": {}, + "$(dotnet|8.0|minor-tag)-bookworm-slim": {}, + "$(dotnet|8.0|fixed-tag)": {}, + "$(dotnet|8.0|minor-tag)": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/cbl-mariner2.0/amd64", + "dockerfile": "src/runtime/8.0/bookworm-slim/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "cbl-mariner2.0", + "osVersion": "bookworm-slim", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-amd64": { - "docType": "Undocumented" - } + "$(dotnet|8.0|fixed-tag)-bookworm-slim-amd64": {}, + "$(dotnet|8.0|minor-tag)-bookworm-slim-amd64": {} } }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/bookworm-slim/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "bookworm-slim", + "tags": { + "$(dotnet|8.0|fixed-tag)-bookworm-slim-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-bookworm-slim-arm32v7": {} + }, + "variant": "v7" + }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/cbl-mariner2.0/arm64v8", + "dockerfile": "src/runtime/8.0/bookworm-slim/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "cbl-mariner2.0", + "osVersion": "bookworm-slim", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-arm64v8": { - "docType": "Undocumented" - } + "$(dotnet|8.0|fixed-tag)-bookworm-slim-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-bookworm-slim-arm64v8": {} }, "variant": "v8" } @@ -3022,164 +2913,129 @@ { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless": { - "docType": "Undocumented" - } + "$(dotnet|8.0|fixed-tag)-alpine3.22": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22": {}, + "$(dotnet|8.0|minor-tag)-alpine": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/cbl-mariner2.0-distroless/amd64", + "dockerfile": "src/runtime/8.0/alpine3.22/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-amd64": { - "docType": "Undocumented" - } - }, - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" - ] - } - ] + "$(dotnet|8.0|fixed-tag)-alpine3.22-amd64": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22-amd64": {}, + "$(dotnet|8.0|minor-tag)-alpine-amd64": {} + } }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/cbl-mariner2.0-distroless/arm64v8", + "dockerfile": "src/runtime/8.0/alpine3.22/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-arm64v8": { - "docType": "Undocumented" - } + "$(dotnet|8.0|fixed-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-alpine-arm32v7": {} }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" - ] - } - ] + "variant": "v7" + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/alpine3.22/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.22", + "tags": { + "$(dotnet|8.0|fixed-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-alpine-arm64v8": {} + }, + "variant": "v8" } ] }, { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra": { - "docType": "Undocumented" - } + "$(dotnet|8.0|fixed-tag)-alpine3.23": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/cbl-mariner2.0-distroless-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/runtime/8.0/alpine3.23/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra-amd64": { - "docType": "Undocumented" - } + "$(dotnet|8.0|fixed-tag)-alpine3.23-amd64": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23-amd64": {} + } + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" }, - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" - ] - } - ] + "dockerfile": "src/runtime/8.0/alpine3.23/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(dotnet|8.0|fixed-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23-arm32v7": {} + }, + "variant": "v7" }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/cbl-mariner2.0-distroless-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/runtime/8.0/alpine3.23/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra-arm64v8": { - "docType": "Undocumented" - } + "$(dotnet|8.0|fixed-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23-arm64v8": {} }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" - ] - } - ] + "variant": "v8" } ] }, { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0": {} + "$(dotnet|8.0|fixed-tag)-noble": {}, + "$(dotnet|8.0|minor-tag)-noble": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/azurelinux3.0/amd64", + "dockerfile": "src/runtime/8.0/noble/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0", + "osVersion": "noble", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-amd64": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-amd64": {} + "$(dotnet|8.0|fixed-tag)-noble-amd64": {}, + "$(dotnet|8.0|minor-tag)-noble-amd64": {} } }, { @@ -3187,13 +3043,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/azurelinux3.0/arm64v8", + "dockerfile": "src/runtime/8.0/noble/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0", + "osVersion": "noble", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-noble-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-noble-arm64v8": {} }, "variant": "v8" } @@ -3202,28 +3058,28 @@ { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/azurelinux3.0-distroless/amd64", + "dockerfile": "src/runtime/8.0/noble-chiseled/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled-amd64": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-amd64" ] } ] @@ -3233,13 +3089,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/azurelinux3.0-distroless/arm64v8", + "dockerfile": "src/runtime/8.0/noble-chiseled/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -3247,7 +3103,7 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-arm64v8" ] } ] @@ -3257,28 +3113,35 @@ { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/azurelinux3.0-distroless-extra/amd64", + "dockerfile": "src/runtime/8.0/noble-chiseled-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra-amd64": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-extra-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):8.0-noble-chiseled-amd64" ] } ] @@ -3288,13 +3151,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/8.0/azurelinux3.0-distroless-extra/arm64v8", + "dockerfile": "src/runtime/8.0/noble-chiseled-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-extra-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -3302,7 +3165,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):8.0-noble-chiseled-arm64v8" ] } ] @@ -3311,168 +3181,1900 @@ }, { "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-jammy": {}, + "$(dotnet|8.0|minor-tag)-jammy": {} + }, "platforms": [ { - "dockerfile": "src/runtime/8.0/nanoserver-1809/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-1809", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/jammy/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "jammy", "tags": { - "$(dotnet|8.0|fixed-tag)-nanoserver-1809": {}, - "$(dotnet|8.0|minor-tag)-nanoserver-1809": {} + "$(dotnet|8.0|fixed-tag)-jammy-amd64": {}, + "$(dotnet|8.0|minor-tag)-jammy-amd64": {} } - } - ] - }, - { - "productVersion": "$(dotnet|8.0|product-version)", - "platforms": [ + }, { - "dockerfile": "src/runtime/8.0/nanoserver-ltsc2022/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-ltsc2022", + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/jammy/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "jammy", "tags": { - "$(dotnet|8.0|fixed-tag)-nanoserver-ltsc2022": {}, - "$(dotnet|8.0|minor-tag)-nanoserver-ltsc2022": {} - } + "$(dotnet|8.0|fixed-tag)-jammy-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-jammy-arm32v7": {} + }, + "variant": "v7" + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/jammy/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "jammy", + "tags": { + "$(dotnet|8.0|fixed-tag)-jammy-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-jammy-arm64v8": {} + }, + "variant": "v8" } ] }, { "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-jammy-chiseled": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled": {} + }, "platforms": [ { - "dockerfile": "src/runtime/8.0/nanoserver-ltsc2025/amd64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/jammy-chiseled/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "jammy-chiseled", + "tags": { + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-amd64": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/jammy-chiseled/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "jammy-chiseled", + "tags": { + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm64v8" + ] + } + ] + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/jammy-chiseled/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "jammy-chiseled", + "tags": { + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-arm32v7": {} + }, + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm32v7" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/jammy-chiseled-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "jammy-chiseled", + "tags": { + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-amd64": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):8.0-jammy-chiseled-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/jammy-chiseled-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "jammy-chiseled", + "tags": { + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):8.0-jammy-chiseled-arm64v8" + ] + } + ] + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/jammy-chiseled-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "jammy-chiseled", + "tags": { + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-arm32v7": {} + }, + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm32v7" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):8.0-jammy-chiseled-arm32v7" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner": { + "docType": "Undocumented" + } + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/cbl-mariner2.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "cbl-mariner2.0", + "tags": { + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-amd64": { + "docType": "Undocumented" + } + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/cbl-mariner2.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "cbl-mariner2.0", + "tags": { + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-arm64v8": { + "docType": "Undocumented" + } + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless": { + "docType": "Undocumented" + } + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/cbl-mariner2.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "cbl-mariner2.0-distroless", + "tags": { + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-amd64": { + "docType": "Undocumented" + } + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/cbl-mariner2.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "cbl-mariner2.0-distroless", + "tags": { + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-arm64v8": { + "docType": "Undocumented" + } + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra": { + "docType": "Undocumented" + } + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/cbl-mariner2.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "cbl-mariner2.0-distroless", + "tags": { + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra-amd64": { + "docType": "Undocumented" + } + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/cbl-mariner2.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "cbl-mariner2.0-distroless", + "tags": { + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra-arm64v8": { + "docType": "Undocumented" + } + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/azurelinux3.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-amd64": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/azurelinux3.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/azurelinux3.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/azurelinux3.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/azurelinux3.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/azurelinux3.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/8.0/nanoserver-1809/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-1809", + "tags": { + "$(dotnet|8.0|fixed-tag)-nanoserver-1809": {}, + "$(dotnet|8.0|minor-tag)-nanoserver-1809": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/8.0/nanoserver-ltsc2022/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-ltsc2022", + "tags": { + "$(dotnet|8.0|fixed-tag)-nanoserver-ltsc2022": {}, + "$(dotnet|8.0|minor-tag)-nanoserver-ltsc2022": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/8.0/nanoserver-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-ltsc2025", + "tags": { + "$(dotnet|8.0|fixed-tag)-nanoserver-ltsc2025": {}, + "$(dotnet|8.0|minor-tag)-nanoserver-ltsc2025": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/8.0/windowsservercore-ltsc2019/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2019", + "tags": { + "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2019": {}, + "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2019": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/8.0/windowsservercore-ltsc2022/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2022", + "tags": { + "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2022": {}, + "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2022": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/8.0/windowsservercore-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2025", + "tags": { + "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2025": {}, + "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2025": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-bookworm-slim": {}, + "$(dotnet|9.0|minor-tag)-bookworm-slim": {}, + "$(dotnet|9.0|fixed-tag)": {}, + "$(dotnet|9.0|minor-tag)": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/bookworm-slim/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "bookworm-slim", + "tags": { + "$(dotnet|9.0|fixed-tag)-bookworm-slim-amd64": {}, + "$(dotnet|9.0|minor-tag)-bookworm-slim-amd64": {} + } + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/bookworm-slim/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "bookworm-slim", + "tags": { + "$(dotnet|9.0|fixed-tag)-bookworm-slim-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-bookworm-slim-arm32v7": {} + }, + "variant": "v7" + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/bookworm-slim/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "bookworm-slim", + "tags": { + "$(dotnet|9.0|fixed-tag)-bookworm-slim-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-bookworm-slim-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-alpine3.22": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22": {}, + "$(dotnet|9.0|minor-tag)-alpine": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/alpine3.22/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.22", + "tags": { + "$(dotnet|9.0|fixed-tag)-alpine3.22-amd64": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22-amd64": {}, + "$(dotnet|9.0|minor-tag)-alpine-amd64": {} + } + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/alpine3.22/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.22", + "tags": { + "$(dotnet|9.0|fixed-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-alpine-arm32v7": {} + }, + "variant": "v7" + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/alpine3.22/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.22", + "tags": { + "$(dotnet|9.0|fixed-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-alpine-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-alpine3.23": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/alpine3.23/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(dotnet|9.0|fixed-tag)-alpine3.23-amd64": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23-amd64": {} + } + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/alpine3.23/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(dotnet|9.0|fixed-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23-arm32v7": {} + }, + "variant": "v7" + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/alpine3.23/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(dotnet|9.0|fixed-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-noble": {}, + "$(dotnet|9.0|minor-tag)-noble": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/noble/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-amd64": {}, + "$(dotnet|9.0|minor-tag)-noble-amd64": {} + } + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/noble/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-noble-arm32v7": {} + }, + "variant": "v7" + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/noble/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-noble-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/noble-chiseled/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled-amd64": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/noble-chiseled/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm64v8" + ] + } + ] + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/noble-chiseled/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-arm32v7": {} + }, + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm32v7" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/noble-chiseled-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-amd64": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|9.0|minor-tag)-noble-chiseled-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/noble-chiseled-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|9.0|minor-tag)-noble-chiseled-arm64v8" + ] + } + ] + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/noble-chiseled-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-arm32v7": {} + }, + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm32v7" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|9.0|minor-tag)-noble-chiseled-arm32v7" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-azurelinux3.0": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/azurelinux3.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-amd64": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/azurelinux3.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/azurelinux3.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/azurelinux3.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/azurelinux3.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|9.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/9.0/azurelinux3.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|9.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/9.0/nanoserver-1809/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-1809", + "tags": { + "$(dotnet|9.0|fixed-tag)-nanoserver-1809": {}, + "$(dotnet|9.0|minor-tag)-nanoserver-1809": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/9.0/nanoserver-ltsc2022/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-ltsc2022", + "tags": { + "$(dotnet|9.0|fixed-tag)-nanoserver-ltsc2022": {}, + "$(dotnet|9.0|minor-tag)-nanoserver-ltsc2022": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/9.0/nanoserver-ltsc2025/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", "os": "windows", "osVersion": "nanoserver-ltsc2025", "tags": { - "$(dotnet|8.0|fixed-tag)-nanoserver-ltsc2025": {}, - "$(dotnet|8.0|minor-tag)-nanoserver-ltsc2025": {} - } + "$(dotnet|9.0|fixed-tag)-nanoserver-ltsc2025": {}, + "$(dotnet|9.0|minor-tag)-nanoserver-ltsc2025": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/9.0/windowsservercore-ltsc2019/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2019", + "tags": { + "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2019": {}, + "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2019": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/9.0/windowsservercore-ltsc2022/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2022", + "tags": { + "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2022": {}, + "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2022": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/9.0/windowsservercore-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2025", + "tags": { + "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2025": {}, + "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2025": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-noble": {}, + "$(dotnet|10.0|minor-tag)-noble": {}, + "$(dotnet|10.0|fixed-tag)": {}, + "$(dotnet|10.0|minor-tag)": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/noble/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-amd64": {}, + "$(dotnet|10.0|minor-tag)-noble-amd64": {} + } + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/noble/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-noble-arm32v7": {} + }, + "variant": "v7" + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/noble/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-noble-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-alpine3.22": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22": {}, + "$(dotnet|10.0|minor-tag)-alpine": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/alpine3.22/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.22", + "tags": { + "$(dotnet|10.0|fixed-tag)-alpine3.22-amd64": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22-amd64": {}, + "$(dotnet|10.0|minor-tag)-alpine-amd64": {} + } + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/alpine3.22/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.22", + "tags": { + "$(dotnet|10.0|fixed-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-alpine-arm32v7": {} + }, + "variant": "v7" + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/alpine3.22/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.22", + "tags": { + "$(dotnet|10.0|fixed-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-alpine-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-alpine3.23": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/alpine3.23/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(dotnet|10.0|fixed-tag)-alpine3.23-amd64": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23-amd64": {} + } + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/alpine3.23/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(dotnet|10.0|fixed-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23-arm32v7": {} + }, + "variant": "v7" + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/alpine3.23/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(dotnet|10.0|fixed-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux3.0": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/azurelinux3.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/azurelinux3.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/azurelinux3.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/azurelinux3.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/azurelinux3.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|10.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/azurelinux3.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|10.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled": {} + }, "platforms": [ { - "dockerfile": "src/runtime/8.0/windowsservercore-ltsc2019/amd64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/noble-chiseled/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-amd64": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/noble-chiseled/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm64v8" + ] + } + ] + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/noble-chiseled/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-arm32v7": {} + }, + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm32v7" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/noble-chiseled-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-amd64": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|10.0|minor-tag)-noble-chiseled-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/noble-chiseled-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|10.0|minor-tag)-noble-chiseled-arm64v8" + ] + } + ] + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/noble-chiseled-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-arm32v7": {} + }, + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm32v7" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|10.0|minor-tag)-noble-chiseled-arm32v7" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "platforms": [ + { + "dockerfile": "src/runtime/10.0/nanoserver-ltsc2022/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", "os": "windows", - "osVersion": "windowsservercore-ltsc2019", + "osVersion": "nanoserver-ltsc2022", "tags": { - "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2019": {}, - "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2019": {} + "$(dotnet|10.0|fixed-tag)-nanoserver-ltsc2022": {}, + "$(dotnet|10.0|minor-tag)-nanoserver-ltsc2022": {} } } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "platforms": [ { - "dockerfile": "src/runtime/8.0/windowsservercore-ltsc2022/amd64", + "dockerfile": "src/runtime/10.0/nanoserver-ltsc2025/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", "os": "windows", - "osVersion": "windowsservercore-ltsc2022", + "osVersion": "nanoserver-ltsc2025", "tags": { - "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2022": {}, - "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2022": {} + "$(dotnet|10.0|fixed-tag)-nanoserver-ltsc2025": {}, + "$(dotnet|10.0|minor-tag)-nanoserver-ltsc2025": {} } } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "platforms": [ { - "dockerfile": "src/runtime/8.0/windowsservercore-ltsc2025/amd64", + "dockerfile": "src/runtime/10.0/windowsservercore-ltsc2022/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", "os": "windows", - "osVersion": "windowsservercore-ltsc2025", + "osVersion": "windowsservercore-ltsc2022", "tags": { - "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2025": {}, - "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2025": {} + "$(dotnet|10.0|fixed-tag)-windowsservercore-ltsc2022": {}, + "$(dotnet|10.0|minor-tag)-windowsservercore-ltsc2022": {} } } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", - "sharedTags": { - "$(dotnet|9.0|fixed-tag)-bookworm-slim": {}, - "$(dotnet|9.0|minor-tag)-bookworm-slim": {}, - "$(dotnet|9.0|fixed-tag)": {}, - "$(dotnet|9.0|minor-tag)": {} - }, + "productVersion": "$(dotnet|10.0|product-version)", "platforms": [ { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/9.0/bookworm-slim/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "bookworm-slim", + "dockerfile": "src/runtime/10.0/windowsservercore-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2025", "tags": { - "$(dotnet|9.0|fixed-tag)-bookworm-slim-amd64": {}, - "$(dotnet|9.0|minor-tag)-bookworm-slim-amd64": {} + "$(dotnet|10.0|fixed-tag)-windowsservercore-ltsc2025": {}, + "$(dotnet|10.0|minor-tag)-windowsservercore-ltsc2025": {} } - }, - { - "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/9.0/bookworm-slim/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "bookworm-slim", - "tags": { - "$(dotnet|9.0|fixed-tag)-bookworm-slim-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-bookworm-slim-arm32v7": {} - }, - "variant": "v7" - }, - { - "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/9.0/bookworm-slim/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "bookworm-slim", - "tags": { - "$(dotnet|9.0|fixed-tag)-bookworm-slim-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-bookworm-slim-arm64v8": {} - }, - "variant": "v8" } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22": {}, - "$(dotnet|9.0|minor-tag)-alpine": {} + "$(dotnet|11.0|fixed-tag)-resolute": {}, + "$(dotnet|11.0|minor-tag)-resolute": {}, + "$(dotnet|11.0|fixed-tag)": {}, + "$(dotnet|11.0|minor-tag)": {}, + "latest": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/alpine3.22/amd64", + "dockerfile": "src/runtime/11.0/resolute/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "resolute", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22-amd64": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22-amd64": {}, - "$(dotnet|9.0|minor-tag)-alpine-amd64": {} + "$(dotnet|11.0|fixed-tag)-resolute-amd64": {}, + "$(dotnet|11.0|minor-tag)-resolute-amd64": {} } }, { @@ -3480,14 +5082,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/alpine3.22/arm32v7", + "dockerfile": "src/runtime/11.0/resolute/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "resolute", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-alpine-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-resolute-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-resolute-arm32v7": {} }, "variant": "v7" }, @@ -3496,37 +5097,38 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/alpine3.22/arm64v8", + "dockerfile": "src/runtime/11.0/resolute/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "resolute", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-alpine-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-resolute-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-resolute-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23": {}, + "$(dotnet|11.0|minor-tag)-alpine": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/alpine3.23/amd64", + "dockerfile": "src/runtime/11.0/alpine3.23/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23-amd64": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23-amd64": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-amd64": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-amd64": {}, + "$(dotnet|11.0|minor-tag)-alpine-amd64": {} } }, { @@ -3534,13 +5136,14 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/alpine3.23/arm32v7", + "dockerfile": "src/runtime/11.0/alpine3.23/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-alpine-arm32v7": {} }, "variant": "v7" }, @@ -3549,95 +5152,81 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/alpine3.23/arm64v8", + "dockerfile": "src/runtime/11.0/alpine3.23/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-noble": {}, - "$(dotnet|9.0|minor-tag)-noble": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/noble/amd64", + "dockerfile": "src/runtime/11.0/azurelinux3.0/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "noble", + "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-amd64": {}, - "$(dotnet|9.0|minor-tag)-noble-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-amd64": {} } }, - { - "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/9.0/noble/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "noble", - "tags": { - "$(dotnet|9.0|fixed-tag)-noble-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-noble-arm32v7": {} - }, - "variant": "v7" - }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/noble/arm64v8", + "dockerfile": "src/runtime/11.0/azurelinux3.0/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "noble", + "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-noble-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/noble-chiseled/amd64", + "dockerfile": "src/runtime/11.0/azurelinux3.0-distroless/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-amd64": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] } ] @@ -3647,13 +5236,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/noble-chiseled/arm64v8", + "dockerfile": "src/runtime/11.0/azurelinux3.0-distroless/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -3661,31 +5250,7 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm64v8" - ] - } - ] - }, - { - "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/9.0/noble-chiseled/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "noble-chiseled", - "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-arm32v7": {} - }, - "variant": "v7", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm32v7" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -3693,37 +5258,37 @@ ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-extra": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/noble-chiseled-extra/amd64", + "dockerfile": "src/runtime/11.0/azurelinux3.0-distroless-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-amd64": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:runtime):$(dotnet|9.0|minor-tag)-noble-chiseled-amd64" + "$(Repo:runtime):$(dotnet|11.0|minor-tag)-azurelinux3.0-amd64" ] } ] @@ -3733,13 +5298,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/noble-chiseled-extra/arm64v8", + "dockerfile": "src/runtime/11.0/azurelinux3.0-distroless-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -3747,137 +5312,93 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:runtime):$(dotnet|9.0|minor-tag)-noble-chiseled-arm64v8" + "$(Repo:runtime):$(dotnet|11.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] - }, + } + ] + }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(dotnet|11.0|fixed-tag)-resolute-chiseled": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled": {} + }, + "platforms": [ { - "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/noble-chiseled-extra/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/runtime/11.0/resolute-chiseled/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-amd64": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-amd64": {} }, - "variant": "v7", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm32v7" - ] - }, - { - "name": "test-dependencies", - "type": "Integral", - "dependencies": [ - "$(Repo:runtime):$(dotnet|9.0|minor-tag)-noble-chiseled-arm32v7" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-amd64" ] } ] - } - ] - }, - { - "productVersion": "$(dotnet|9.0|product-version)", - "sharedTags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0": {} - }, - "platforms": [ - { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/9.0/azurelinux3.0/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "azurelinux3.0", - "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-amd64": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-amd64": {} - } }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/azurelinux3.0/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "azurelinux3.0", - "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-arm64v8": {} - }, - "variant": "v8" - } - ] - }, - { - "productVersion": "$(dotnet|9.0|product-version)", - "sharedTags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless": {} - }, - "platforms": [ - { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/9.0/azurelinux3.0-distroless/amd64", + "dockerfile": "src/runtime/11.0/resolute-chiseled/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-arm64v8": {} }, + "variant": "v8", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm64v8" ] } ] }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/azurelinux3.0-distroless/arm64v8", + "dockerfile": "src/runtime/11.0/resolute-chiseled/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-arm32v7": {} }, - "variant": "v8", + "variant": "v7", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm32v7" ] } ] @@ -3885,37 +5406,37 @@ ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/azurelinux3.0-distroless-extra/amd64", + "dockerfile": "src/runtime/11.0/resolute-chiseled-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:runtime):$(dotnet|9.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:runtime):$(dotnet|11.0|minor-tag)-resolute-chiseled-amd64" ] } ] @@ -3925,13 +5446,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/9.0/azurelinux3.0-distroless-extra/arm64v8", + "dockerfile": "src/runtime/11.0/resolute-chiseled-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -3939,185 +5460,232 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:runtime):$(dotnet|9.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:runtime):$(dotnet|11.0|minor-tag)-resolute-chiseled-arm64v8" ] } ] - } - ] - }, - { - "productVersion": "$(dotnet|9.0|product-version)", - "platforms": [ + }, { - "dockerfile": "src/runtime/9.0/nanoserver-1809/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-1809", + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/11.0/resolute-chiseled-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|9.0|fixed-tag)-nanoserver-1809": {}, - "$(dotnet|9.0|minor-tag)-nanoserver-1809": {} - } + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra-arm32v7": {} + }, + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm32v7" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|11.0|minor-tag)-resolute-chiseled-arm32v7" + ] + } + ] } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "platforms": [ { - "dockerfile": "src/runtime/9.0/nanoserver-ltsc2022/amd64", + "dockerfile": "src/runtime/11.0/nanoserver-ltsc2025/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", "os": "windows", - "osVersion": "nanoserver-ltsc2022", + "osVersion": "nanoserver-ltsc2025", "tags": { - "$(dotnet|9.0|fixed-tag)-nanoserver-ltsc2022": {}, - "$(dotnet|9.0|minor-tag)-nanoserver-ltsc2022": {} + "$(dotnet|11.0|fixed-tag)-nanoserver-ltsc2025": {}, + "$(dotnet|11.0|minor-tag)-nanoserver-ltsc2025": {} } } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "platforms": [ { - "dockerfile": "src/runtime/9.0/nanoserver-ltsc2025/amd64", + "dockerfile": "src/runtime/11.0/windowsservercore-ltsc2025/amd64", "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", "os": "windows", - "osVersion": "nanoserver-ltsc2025", + "osVersion": "windowsservercore-ltsc2025", "tags": { - "$(dotnet|9.0|fixed-tag)-nanoserver-ltsc2025": {}, - "$(dotnet|9.0|minor-tag)-nanoserver-ltsc2025": {} + "$(dotnet|11.0|fixed-tag)-windowsservercore-ltsc2025": {}, + "$(dotnet|11.0|minor-tag)-windowsservercore-ltsc2025": {} } } ] + } + ] + }, + { + "id": "aspnet", + "name": "dotnet/nightly/aspnet", + "readmes": [ + { + "path": "README.aspnet.md", + "templatePath": "eng/readme-templates/README.github.md" }, { - "productVersion": "$(dotnet|9.0|product-version)", - "platforms": [ - { - "dockerfile": "src/runtime/9.0/windowsservercore-ltsc2019/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", - "os": "windows", - "osVersion": "windowsservercore-ltsc2019", - "tags": { - "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2019": {}, - "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2019": {} - } - } - ] + "path": ".portal-docs/docker-hub/README.aspnet.md", + "templatePath": "eng/readme-templates/README.dockerhub.md" }, { - "productVersion": "$(dotnet|9.0|product-version)", + "path": ".portal-docs/mar/README.aspnet.portal.md", + "templatePath": "eng/readme-templates/README.mcr.md" + } + ], + "mcrTagsMetadataTemplate": "eng/mcr-tags-metadata-templates/aspnet-tags.yml", + "images": [ + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-bookworm-slim": {}, + "$(dotnet|8.0|minor-tag)-bookworm-slim": {}, + "$(dotnet|8.0|fixed-tag)": {}, + "$(dotnet|8.0|minor-tag)": {} + }, "platforms": [ { - "dockerfile": "src/runtime/9.0/windowsservercore-ltsc2022/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", - "os": "windows", - "osVersion": "windowsservercore-ltsc2022", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/8.0/bookworm-slim/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "bookworm-slim", "tags": { - "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2022": {}, - "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2022": {} + "$(dotnet|8.0|fixed-tag)-bookworm-slim-amd64": {}, + "$(dotnet|8.0|minor-tag)-bookworm-slim-amd64": {} } - } - ] - }, - { - "productVersion": "$(dotnet|9.0|product-version)", - "platforms": [ + }, { - "dockerfile": "src/runtime/9.0/windowsservercore-ltsc2025/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", - "os": "windows", - "osVersion": "windowsservercore-ltsc2025", + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/8.0/bookworm-slim/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "bookworm-slim", "tags": { - "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2025": {}, - "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2025": {} - } + "$(dotnet|8.0|fixed-tag)-bookworm-slim-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-bookworm-slim-arm32v7": {} + }, + "variant": "v7" + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/8.0/bookworm-slim/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "bookworm-slim", + "tags": { + "$(dotnet|8.0|fixed-tag)-bookworm-slim-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-bookworm-slim-arm64v8": {} + }, + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-noble": {}, - "$(dotnet|10.0|minor-tag)-noble": {}, - "$(dotnet|10.0|fixed-tag)": {}, - "$(dotnet|10.0|minor-tag)": {}, - "latest": {} + "$(dotnet|8.0|fixed-tag)-alpine3.22": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22": {}, + "$(dotnet|8.0|minor-tag)-alpine": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/noble/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.22/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-amd64": {}, - "$(dotnet|10.0|minor-tag)-noble-amd64": {} + "$(dotnet|8.0|fixed-tag)-alpine3.22-amd64": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22-amd64": {}, + "$(dotnet|8.0|minor-tag)-alpine-amd64": {} } }, { "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/noble/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.22/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-noble-arm32v7": {} + "$(dotnet|8.0|fixed-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-alpine-arm32v7": {} }, "variant": "v7" }, { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/noble/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.22/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-noble-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-alpine-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22": {}, - "$(dotnet|10.0|minor-tag)-alpine": {} + "$(dotnet|8.0|fixed-tag)-alpine3.22-composite": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22-composite": {}, + "$(dotnet|8.0|minor-tag)-alpine-composite": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/10.0/alpine3.22/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.22-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", "osVersion": "alpine3.22", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22-amd64": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22-amd64": {}, - "$(dotnet|10.0|minor-tag)-alpine-amd64": {} + "$(dotnet|8.0|fixed-tag)-alpine3.22-composite-amd64": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22-composite-amd64": {}, + "$(dotnet|8.0|minor-tag)-alpine-composite-amd64": {} } }, { @@ -4125,14 +5693,14 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/10.0/alpine3.22/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.22-composite/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", "osVersion": "alpine3.22", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-alpine-arm32v7": {} + "$(dotnet|8.0|fixed-tag)-alpine3.22-composite-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22-composite-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-alpine-composite-arm32v7": {} }, "variant": "v7" }, @@ -4141,257 +5709,185 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/10.0/alpine3.22/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.22-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", "osVersion": "alpine3.22", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-alpine-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-alpine3.22-composite-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-alpine3.22-composite-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-alpine-composite-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", - "sharedTags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23": {} + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-alpine3.23": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/alpine3.23/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.23/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23-amd64": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23-amd64": {} + "$(dotnet|8.0|fixed-tag)-alpine3.23-amd64": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23-amd64": {} } }, { "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/alpine3.23/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.23/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23-arm32v7": {} + "$(dotnet|8.0|fixed-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23-arm32v7": {} }, "variant": "v7" }, { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/alpine3.23/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.23/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0": {} + "$(dotnet|8.0|fixed-tag)-alpine3.23-composite": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23-composite": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/10.0/azurelinux3.0/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.23-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "azurelinux3.0", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-amd64": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-amd64": {} + "$(dotnet|8.0|fixed-tag)-alpine3.23-composite-amd64": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23-composite-amd64": {} } }, { - "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/10.0/azurelinux3.0/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "azurelinux3.0", - "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-arm64v8": {} - }, - "variant": "v8" - } - ] - }, - { - "productVersion": "$(dotnet|10.0|product-version)", - "sharedTags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless": {} - }, - "platforms": [ - { + "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/10.0/azurelinux3.0-distroless/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.23-composite/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + "$(dotnet|8.0|fixed-tag)-alpine3.23-composite-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23-composite-arm32v7": {} }, - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" - ] - } - ] + "variant": "v7" }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/10.0/azurelinux3.0-distroless/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/alpine3.23-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-alpine3.23-composite-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-alpine3.23-composite-arm64v8": {} }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" - ] - } - ] + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra": {} + "$(dotnet|8.0|fixed-tag)-noble": {}, + "$(dotnet|8.0|minor-tag)-noble": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/azurelinux3.0-distroless-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/8.0/noble/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} - }, - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" - ] - }, - { - "name": "test-dependencies", - "type": "Integral", - "dependencies": [ - "$(Repo:runtime):$(dotnet|10.0|minor-tag)-azurelinux3.0-amd64" - ] - } - ] + "$(dotnet|8.0|fixed-tag)-noble-amd64": {}, + "$(dotnet|8.0|minor-tag)-noble-amd64": {} + } }, { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/azurelinux3.0-distroless-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/8.0/noble/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-noble-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-noble-arm64v8": {} }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" - ] - }, - { - "name": "test-dependencies", - "type": "Integral", - "dependencies": [ - "$(Repo:runtime):$(dotnet|10.0|minor-tag)-azurelinux3.0-arm64v8" - ] - } - ] + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/noble-chiseled/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/noble-chiseled/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "noble-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-amd64": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-amd64": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled-amd64": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-amd64" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-amd64" ] } ] @@ -4399,147 +5895,92 @@ { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/10.0/noble-chiseled/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "noble-chiseled", - "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-arm64v8": {} - }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm64v8" - ] - } - ] - }, - { - "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/runtime/10.0/noble-chiseled/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", - "os": "linux", - "osVersion": "noble-chiseled", - "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-arm32v7": {} - }, - "variant": "v7", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm32v7" - ] - } - ] - } - ] - }, - { - "productVersion": "$(dotnet|10.0|product-version)", - "sharedTags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-extra": {} - }, - "platforms": [ - { - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/noble-chiseled-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/8.0/noble-chiseled/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "noble-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-amd64": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-amd64": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-arm64v8": {} }, + "variant": "v8", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-amd64" - ] - }, - { - "name": "test-dependencies", - "type": "Integral", - "dependencies": [ - "$(Repo:runtime):$(dotnet|10.0|minor-tag)-noble-chiseled-amd64" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-arm64v8" ] } ] - }, + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-extra": {} + }, + "platforms": [ { - "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/noble-chiseled-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/8.0/noble-chiseled-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", "osVersion": "noble-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra-amd64": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-extra-amd64": {} }, - "variant": "v8", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm64v8" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:runtime):$(dotnet|10.0|minor-tag)-noble-chiseled-arm64v8" + "$(Repo:aspnet):8.0-noble-chiseled-amd64" ] } ] }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/runtime/10.0/noble-chiseled-extra/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/8.0/noble-chiseled-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", "osVersion": "noble-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-arm32v7": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-extra-arm64v8": {} }, - "variant": "v7", + "variant": "v8", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm32v7" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:runtime):$(dotnet|10.0|minor-tag)-noble-chiseled-arm32v7" + "$(Repo:aspnet):8.0-noble-chiseled-arm64v8" ] } ] @@ -4547,106 +5988,97 @@ ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite-extra": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-composite-extra": {} + }, "platforms": [ { - "dockerfile": "src/runtime/10.0/nanoserver-ltsc2022/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-ltsc2022", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/8.0/noble-chiseled-composite-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "os": "linux", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-nanoserver-ltsc2022": {}, - "$(dotnet|10.0|minor-tag)-nanoserver-ltsc2022": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite-extra-amd64": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-composite-extra-amd64": {} } - } - ] - }, - { - "productVersion": "$(dotnet|10.0|product-version)", - "platforms": [ + }, { - "dockerfile": "src/runtime/10.0/nanoserver-ltsc2025/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-ltsc2025", + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/8.0/noble-chiseled-composite-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "os": "linux", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-nanoserver-ltsc2025": {}, - "$(dotnet|10.0|minor-tag)-nanoserver-ltsc2025": {} - } + "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite-extra-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-composite-extra-arm64v8": {} + }, + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-composite": {} + }, "platforms": [ { - "dockerfile": "src/runtime/10.0/windowsservercore-ltsc2022/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", - "os": "windows", - "osVersion": "windowsservercore-ltsc2022", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/8.0/noble-chiseled-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "os": "linux", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-windowsservercore-ltsc2022": {}, - "$(dotnet|10.0|minor-tag)-windowsservercore-ltsc2022": {} + "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite-amd64": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-composite-amd64": {} } - } - ] - }, - { - "productVersion": "$(dotnet|10.0|product-version)", - "platforms": [ + }, { - "dockerfile": "src/runtime/10.0/windowsservercore-ltsc2025/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.windows", - "os": "windows", - "osVersion": "windowsservercore-ltsc2025", + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/8.0/noble-chiseled-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "os": "linux", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-windowsservercore-ltsc2025": {}, - "$(dotnet|10.0|minor-tag)-windowsservercore-ltsc2025": {} - } + "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-noble-chiseled-composite-arm64v8": {} + }, + "variant": "v8" } ] - } - ] - }, - { - "id": "aspnet", - "name": "dotnet/nightly/aspnet", - "readmes": [ - { - "path": "README.aspnet.md", - "templatePath": "eng/readme-templates/README.github.md" }, - { - "path": ".portal-docs/docker-hub/README.aspnet.md", - "templatePath": "eng/readme-templates/README.dockerhub.md" - }, - { - "path": ".portal-docs/mar/README.aspnet.portal.md", - "templatePath": "eng/readme-templates/README.mcr.md" - } - ], - "mcrTagsMetadataTemplate": "eng/mcr-tags-metadata-templates/aspnet-tags.yml", - "images": [ { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-bookworm-slim": {}, - "$(dotnet|8.0|minor-tag)-bookworm-slim": {}, - "$(dotnet|8.0|fixed-tag)": {}, - "$(dotnet|8.0|minor-tag)": {} + "$(dotnet|8.0|fixed-tag)-jammy": {}, + "$(dotnet|8.0|minor-tag)-jammy": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/bookworm-slim/amd64", + "dockerfile": "src/aspnet/8.0/jammy/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "bookworm-slim", + "osVersion": "jammy", "tags": { - "$(dotnet|8.0|fixed-tag)-bookworm-slim-amd64": {}, - "$(dotnet|8.0|minor-tag)-bookworm-slim-amd64": {} + "$(dotnet|8.0|fixed-tag)-jammy-amd64": {}, + "$(dotnet|8.0|minor-tag)-jammy-amd64": {} } }, { @@ -4654,13 +6086,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/bookworm-slim/arm32v7", + "dockerfile": "src/aspnet/8.0/jammy/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "bookworm-slim", + "osVersion": "jammy", "tags": { - "$(dotnet|8.0|fixed-tag)-bookworm-slim-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-bookworm-slim-arm32v7": {} + "$(dotnet|8.0|fixed-tag)-jammy-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-jammy-arm32v7": {} }, "variant": "v7" }, @@ -4669,13 +6101,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/bookworm-slim/arm64v8", + "dockerfile": "src/aspnet/8.0/jammy/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "bookworm-slim", + "osVersion": "jammy", "tags": { - "$(dotnet|8.0|fixed-tag)-bookworm-slim-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-bookworm-slim-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-jammy-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-jammy-arm64v8": {} }, "variant": "v8" } @@ -4684,237 +6116,318 @@ { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22": {}, - "$(dotnet|8.0|minor-tag)-alpine": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/alpine3.22/amd64", + "dockerfile": "src/aspnet/8.0/jammy-chiseled/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22-amd64": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22-amd64": {}, - "$(dotnet|8.0|minor-tag)-alpine-amd64": {} - } + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-amd64": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-amd64" + ] + } + ] }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/alpine3.22/arm32v7", + "dockerfile": "src/aspnet/8.0/jammy-chiseled/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-alpine-arm32v7": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-arm64v8": {} }, - "variant": "v7" + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm64v8" + ] + } + ] }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/alpine3.22/arm64v8", + "dockerfile": "src/aspnet/8.0/jammy-chiseled/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-alpine-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-arm32v7": {} }, - "variant": "v8" + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm32v7" + ] + } + ] } ] }, { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22-composite": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22-composite": {}, - "$(dotnet|8.0|minor-tag)-alpine-composite": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/alpine3.22-composite/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/8.0/jammy-chiseled-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22-composite-amd64": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22-composite-amd64": {}, - "$(dotnet|8.0|minor-tag)-alpine-composite-amd64": {} - } + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-amd64": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:aspnet):8.0-jammy-chiseled-amd64" + ] + } + ] }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/alpine3.22-composite/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/8.0/jammy-chiseled-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22-composite-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22-composite-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-alpine-composite-arm32v7": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-arm64v8": {} }, - "variant": "v7" + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:aspnet):8.0-jammy-chiseled-arm64v8" + ] + } + ] }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/alpine3.22-composite/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/8.0/jammy-chiseled-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.22-composite-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-alpine3.22-composite-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-alpine-composite-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-arm32v7": {} }, - "variant": "v8" + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm32v7" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:aspnet):8.0-jammy-chiseled-arm32v7" + ] + } + ] } ] }, { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-extra": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-extra": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/alpine3.23/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "alpine3.23", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23-amd64": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23-amd64": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-extra-amd64": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-extra-amd64": {} } }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/alpine3.23/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "alpine3.23", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23-arm32v7": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-extra-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-extra-arm64v8": {} }, - "variant": "v7" + "variant": "v8" }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/alpine3.23/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "alpine3.23", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-extra-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-extra-arm32v7": {} }, - "variant": "v8" + "variant": "v7" } ] }, { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23-composite": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23-composite": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/alpine3.23-composite/amd64", + "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "alpine3.23", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23-composite-amd64": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23-composite-amd64": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-amd64": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-amd64": {} } }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/alpine3.23-composite/arm32v7", + "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "alpine3.23", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23-composite-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23-composite-arm32v7": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-arm64v8": {} }, - "variant": "v7" + "variant": "v8" }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/alpine3.23-composite/arm64v8", + "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "alpine3.23", + "osVersion": "jammy-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-alpine3.23-composite-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-alpine3.23-composite-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-arm32v7": {}, + "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-arm32v7": {} }, - "variant": "v8" + "variant": "v7" } ] }, { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-noble": {}, - "$(dotnet|8.0|minor-tag)-noble": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner": { + "docType": "Undocumented" + } }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/noble/amd64", + "dockerfile": "src/aspnet/8.0/cbl-mariner2.0/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble", + "osVersion": "cbl-mariner2.0", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-amd64": {}, - "$(dotnet|8.0|minor-tag)-noble-amd64": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-amd64": { + "docType": "Undocumented" + } } }, { @@ -4922,13 +6435,20 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/noble/arm64v8", + "dockerfile": "src/aspnet/8.0/cbl-mariner2.0/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble", + "osVersion": "cbl-mariner2.0", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-noble-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-arm64v8": { + "docType": "Undocumented" + } }, "variant": "v8" } @@ -4937,28 +6457,42 @@ { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless": { + "docType": "Undocumented" + } }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/noble-chiseled/amd64", + "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "cbl-mariner2.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-amd64": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-amd64": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-amd64": { + "docType": "Undocumented" + } }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-amd64" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" ] } ] @@ -4968,13 +6502,20 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/noble-chiseled/arm64v8", + "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "cbl-mariner2.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-arm64v8": { + "docType": "Undocumented" + } }, "variant": "v8", "customBuildLegGroups": [ @@ -4982,7 +6523,7 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-arm64v8" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" ] } ] @@ -4992,35 +6533,36 @@ { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-extra": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra": { + "docType": "Undocumented" + } }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/noble-chiseled-extra/amd64", + "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "cbl-mariner2.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra-amd64": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-extra-amd64": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra-amd64": { + "docType": "Undocumented" + } }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-amd64" - ] - }, - { - "name": "test-dependencies", - "type": "Integral", - "dependencies": [ - "$(Repo:aspnet):8.0-noble-chiseled-amd64" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" ] } ] @@ -5030,13 +6572,17 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/noble-chiseled-extra/arm64v8", + "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "cbl-mariner2.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-extra-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra-arm64v8": { + "docType": "Undocumented" + } }, "variant": "v8", "customBuildLegGroups": [ @@ -5044,14 +6590,7 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-noble-arm64v8" - ] - }, - { - "name": "test-dependencies", - "type": "Integral", - "dependencies": [ - "$(Repo:aspnet):8.0-noble-chiseled-arm64v8" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" ] } ] @@ -5061,124 +6600,187 @@ { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite-extra": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-composite-extra": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite": { + "docType": "Undocumented" + } }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/noble-chiseled-composite-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "cbl-mariner2.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite-extra-amd64": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-composite-extra-amd64": {} - } + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite-amd64": { + "docType": "Undocumented" + } + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" + ] + } + ] }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/noble-chiseled-composite-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "cbl-mariner2.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite-extra-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-composite-extra-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite-arm64v8": { + "docType": "Undocumented" + } }, - "variant": "v8" + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" + ] + } + ] } ] }, { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-composite": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite-extra": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite-extra": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite-extra": { + "docType": "Undocumented" + } }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/noble-chiseled-composite/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-composite-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "cbl-mariner2.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite-amd64": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-composite-amd64": {} - } + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite-extra-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite-extra-amd64": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite-extra-amd64": { + "docType": "Undocumented" + } + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" + ] + } + ] }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/noble-chiseled-composite/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-composite-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "cbl-mariner2.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-noble-chiseled-composite-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-noble-chiseled-composite-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite-extra-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite-extra-arm64v8": { + "docType": "Undocumented" + }, + "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite-extra-arm64v8": { + "docType": "Undocumented" + } }, - "variant": "v8" + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" + ] + } + ] } ] }, { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-jammy": {}, - "$(dotnet|8.0|minor-tag)-jammy": {} + "$(dotnet|8.0|fixed-tag)-azurelinux3.0": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/jammy/amd64", + "dockerfile": "src/aspnet/8.0/azurelinux3.0/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "jammy", + "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-amd64": {}, - "$(dotnet|8.0|minor-tag)-jammy-amd64": {} + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-amd64": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-amd64": {} } }, - { - "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime)" - }, - "dockerfile": "src/aspnet/8.0/jammy/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", - "os": "linux", - "osVersion": "jammy", - "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-jammy-arm32v7": {} - }, - "variant": "v7" - }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/jammy/arm64v8", + "dockerfile": "src/aspnet/8.0/azurelinux3.0/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "jammy", + "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-jammy-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-arm64v8": {} }, "variant": "v8" } @@ -5187,28 +6789,28 @@ { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled": {} + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled/amd64", + "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-amd64": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-amd64": {} + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-amd64" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" ] } ] @@ -5218,13 +6820,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled/arm64v8", + "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -5232,31 +6834,62 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm64v8" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" ] } ] }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-arm32v7": {} + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} }, - "variant": "v7", + "variant": "v8", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm32v7" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -5266,35 +6899,28 @@ { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra": {} + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-amd64": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-amd64": {} + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite-amd64": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-amd64" - ] - }, - { - "name": "test-dependencies", - "type": "Integral", - "dependencies": [ - "$(Repo:aspnet):8.0-jammy-chiseled-amd64" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" ] } ] @@ -5302,15 +6928,15 @@ { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-arm64v8": {} + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -5318,45 +6944,62 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm64v8" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" ] - }, + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite-extra": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-composite-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-amd64": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite-extra-amd64": {} + }, + "customBuildLegGroups": [ { - "name": "test-dependencies", - "type": "Integral", + "name": "pr-build", + "type": "Supplemental", "dependencies": [ - "$(Repo:aspnet):8.0-jammy-chiseled-arm64v8" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" ] } ] }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled-extra/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-composite-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-extra-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-extra-arm32v7": {} + "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {} }, - "variant": "v7", + "variant": "v8", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-jammy-arm32v7" - ] - }, - { - "name": "test-dependencies", - "type": "Integral", - "dependencies": [ - "$(Repo:aspnet):8.0-jammy-chiseled-arm32v7" + "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -5365,523 +7008,459 @@ }, { "productVersion": "$(dotnet|8.0|product-version)", - "sharedTags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-extra": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-extra": {} - }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/8.0/nanoserver-1809/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-1809", + "tags": { + "$(dotnet|8.0|fixed-tag)-nanoserver-1809": {}, + "$(dotnet|8.0|minor-tag)-nanoserver-1809": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/8.0/nanoserver-ltsc2022/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-ltsc2022", + "tags": { + "$(dotnet|8.0|fixed-tag)-nanoserver-ltsc2022": {}, + "$(dotnet|8.0|minor-tag)-nanoserver-ltsc2022": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/8.0/nanoserver-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-ltsc2025", + "tags": { + "$(dotnet|8.0|fixed-tag)-nanoserver-ltsc2025": {}, + "$(dotnet|8.0|minor-tag)-nanoserver-ltsc2025": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/8.0/windowsservercore-ltsc2019/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2019", + "tags": { + "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2019": {}, + "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2019": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/8.0/windowsservercore-ltsc2022/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2022", + "tags": { + "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2022": {}, + "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2022": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", - "os": "linux", - "osVersion": "jammy-chiseled", + "dockerfile": "src/aspnet/8.0/windowsservercore-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2025", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-extra-amd64": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-extra-amd64": {} + "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2025": {}, + "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2025": {} } - }, - { - "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", - "os": "linux", - "osVersion": "jammy-chiseled", - "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-extra-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-extra-arm64v8": {} - }, - "variant": "v8" - }, - { - "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite-extra/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", - "os": "linux", - "osVersion": "jammy-chiseled", - "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-extra-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-extra-arm32v7": {} - }, - "variant": "v7" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|9.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite": {} + "$(dotnet|9.0|fixed-tag)-bookworm-slim": {}, + "$(dotnet|9.0|minor-tag)-bookworm-slim": {}, + "$(dotnet|9.0|fixed-tag)": {}, + "$(dotnet|9.0|minor-tag)": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/9.0/bookworm-slim/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "bookworm-slim", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-amd64": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-amd64": {} + "$(dotnet|9.0|fixed-tag)-bookworm-slim-amd64": {}, + "$(dotnet|9.0|minor-tag)-bookworm-slim-amd64": {} } }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/9.0/bookworm-slim/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "bookworm-slim", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-arm64v8": {} + "$(dotnet|9.0|fixed-tag)-bookworm-slim-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-bookworm-slim-arm32v7": {} }, - "variant": "v8" + "variant": "v7" }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/jammy-chiseled-composite/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/9.0/bookworm-slim/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "jammy-chiseled", + "osVersion": "bookworm-slim", "tags": { - "$(dotnet|8.0|fixed-tag)-jammy-chiseled-composite-arm32v7": {}, - "$(dotnet|8.0|minor-tag)-jammy-chiseled-composite-arm32v7": {} + "$(dotnet|9.0|fixed-tag)-bookworm-slim-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-bookworm-slim-arm64v8": {} }, - "variant": "v7" + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|9.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.22": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22": {}, + "$(dotnet|9.0|minor-tag)-alpine": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/cbl-mariner2.0/amd64", + "dockerfile": "src/aspnet/9.0/alpine3.22/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "cbl-mariner2.0", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-amd64": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.22-amd64": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22-amd64": {}, + "$(dotnet|9.0|minor-tag)-alpine-amd64": {} } }, { - "architecture": "arm64", - "buildArgs": { - "REPO": "$(Repo:runtime)" - }, - "dockerfile": "src/aspnet/8.0/cbl-mariner2.0/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", - "os": "linux", - "osVersion": "cbl-mariner2.0", - "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-arm64v8": { - "docType": "Undocumented" - } - }, - "variant": "v8" - } - ] - }, - { - "productVersion": "$(dotnet|8.0|product-version)", - "sharedTags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless": { - "docType": "Undocumented" - } - }, - "platforms": [ - { + "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless/amd64", + "dockerfile": "src/aspnet/9.0/alpine3.22/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-amd64": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-alpine-arm32v7": {} }, - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" - ] - } - ] + "variant": "v7" }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless/arm64v8", + "dockerfile": "src/aspnet/9.0/alpine3.22/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-arm64v8": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-alpine-arm64v8": {} }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" - ] - } - ] + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|9.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.22-composite": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22-composite": {}, + "$(dotnet|9.0|minor-tag)-alpine-composite": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/9.0/alpine3.22-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "os": "linux", + "osVersion": "alpine3.22", + "tags": { + "$(dotnet|9.0|fixed-tag)-alpine3.22-composite-amd64": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22-composite-amd64": {}, + "$(dotnet|9.0|minor-tag)-alpine-composite-amd64": {} + } + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/9.0/alpine3.22-composite/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra-amd64": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.22-composite-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22-composite-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-alpine-composite-arm32v7": {} }, - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" - ] - } - ] + "variant": "v7" }, { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/9.0/alpine3.22-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-extra-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-extra-arm64v8": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.22-composite-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-alpine3.22-composite-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-alpine-composite-arm64v8": {} }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" - ] - } - ] + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|9.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.23": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-composite/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/9.0/alpine3.23/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite-amd64": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.23-amd64": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23-amd64": {} + } + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime)" }, - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" - ] - } - ] + "dockerfile": "src/aspnet/9.0/alpine3.23/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(dotnet|9.0|fixed-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23-arm32v7": {} + }, + "variant": "v7" }, { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-composite/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/9.0/alpine3.23/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite-arm64v8": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23-arm64v8": {} }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" - ] - } - ] + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|9.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite-extra": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite-extra": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite-extra": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.23-composite": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23-composite": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-composite-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "dockerfile": "src/aspnet/9.0/alpine3.23-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite-extra-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite-extra-amd64": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite-extra-amd64": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.23-composite-amd64": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23-composite-amd64": {} + } + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" }, - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-amd64" - ] - } - ] + "dockerfile": "src/aspnet/9.0/alpine3.23-composite/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(dotnet|9.0|fixed-tag)-alpine3.23-composite-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23-composite-arm32v7": {} + }, + "variant": "v7" }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/cbl-mariner2.0-distroless-composite-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "dockerfile": "src/aspnet/9.0/alpine3.23-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "cbl-mariner2.0-distroless", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|8.0|fixed-tag)-cbl-mariner2.0-distroless-composite-extra-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner2.0-distroless-composite-extra-arm64v8": { - "docType": "Undocumented" - }, - "$(dotnet|8.0|minor-tag)-cbl-mariner-distroless-composite-extra-arm64v8": { - "docType": "Undocumented" - } + "$(dotnet|9.0|fixed-tag)-alpine3.23-composite-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-alpine3.23-composite-arm64v8": {} }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-cbl-mariner2.0-arm64v8" - ] - } - ] + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|9.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0": {} + "$(dotnet|9.0|fixed-tag)-noble": {}, + "$(dotnet|9.0|minor-tag)-noble": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/azurelinux3.0/amd64", + "dockerfile": "src/aspnet/9.0/noble/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0", + "osVersion": "noble", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-amd64": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-amd64": {} + "$(dotnet|9.0|fixed-tag)-noble-amd64": {}, + "$(dotnet|9.0|minor-tag)-noble-amd64": {} } }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/9.0/noble/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "noble", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-noble-arm32v7": {} + }, + "variant": "v7" + }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/azurelinux3.0/arm64v8", + "dockerfile": "src/aspnet/9.0/noble/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0", + "osVersion": "noble", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-arm64v8": {} + "$(dotnet|9.0|fixed-tag)-noble-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-noble-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|9.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless": {} + "$(dotnet|9.0|fixed-tag)-noble-chiseled": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless/amd64", + "dockerfile": "src/aspnet/9.0/noble-chiseled/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + "$(dotnet|9.0|fixed-tag)-noble-chiseled-amd64": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-amd64" ] } ] @@ -5891,13 +7470,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless/arm64v8", + "dockerfile": "src/aspnet/9.0/noble-chiseled/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + "$(dotnet|9.0|fixed-tag)-noble-chiseled-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -5905,117 +7484,131 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm64v8" ] } ] - } - ] - }, - { - "productVersion": "$(dotnet|8.0|product-version)", - "sharedTags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra": {} - }, - "platforms": [ + }, { + "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/9.0/noble-chiseled/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} + "$(dotnet|9.0|fixed-tag)-noble-chiseled-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-arm32v7": {} }, + "variant": "v7", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm32v7" ] } ] - }, + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-extra": {} + }, + "platforms": [ { - "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-extra/arm64v8", + "dockerfile": "src/aspnet/9.0/noble-chiseled-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} + "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-amd64": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-amd64": {} }, - "variant": "v8", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:aspnet):$(dotnet|9.0|minor-tag)-noble-chiseled-amd64" ] } ] - } - ] - }, - { - "productVersion": "$(dotnet|8.0|product-version)", - "sharedTags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite": {} - }, - "platforms": [ + }, { + "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-composite/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/9.0/noble-chiseled-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite-amd64": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite-amd64": {} + "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-arm64v8": {} }, + "variant": "v8", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:aspnet):$(dotnet|9.0|minor-tag)-noble-chiseled-arm64v8" ] } ] }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-composite/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/9.0/noble-chiseled-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite-arm64v8": {} + "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-arm32v7": {} }, - "variant": "v8", + "variant": "v7", "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm32v7" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:aspnet):$(dotnet|9.0|minor-tag)-noble-chiseled-arm32v7" ] } ] @@ -6023,456 +7616,550 @@ ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|9.0|product-version)", "sharedTags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite-extra": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite-extra": {} + "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-extra": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-composite-extra/amd64", + "dockerfile": "src/aspnet/9.0/noble-chiseled-composite-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-amd64": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite-extra-amd64": {} - }, - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-amd64" - ] - } - ] + "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-extra-amd64": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-extra-amd64": {} + } }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/azurelinux3.0-distroless-composite-extra/arm64v8", + "dockerfile": "src/aspnet/9.0/noble-chiseled-composite-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {}, - "$(dotnet|8.0|minor-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {} + "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-extra-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-extra-arm64v8": {} }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|8.0|minor-tag)-azurelinux3.0-arm64v8" - ] - } - ] - } - ] - }, - { - "productVersion": "$(dotnet|8.0|product-version)", - "platforms": [ + "variant": "v8" + }, { + "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/nanoserver-1809/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-1809", + "dockerfile": "src/aspnet/9.0/noble-chiseled-composite-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "os": "linux", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-nanoserver-1809": {}, - "$(dotnet|8.0|minor-tag)-nanoserver-1809": {} - } + "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-extra-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-extra-arm32v7": {} + }, + "variant": "v7" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-composite": {} + }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/8.0/nanoserver-ltsc2022/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-ltsc2022", + "dockerfile": "src/aspnet/9.0/noble-chiseled-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "os": "linux", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|8.0|fixed-tag)-nanoserver-ltsc2022": {}, - "$(dotnet|8.0|minor-tag)-nanoserver-ltsc2022": {} + "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-amd64": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-amd64": {} } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/9.0/noble-chiseled-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-arm64v8": {} + }, + "variant": "v8" + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/9.0/noble-chiseled-composite/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-arm32v7": {}, + "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-arm32v7": {} + }, + "variant": "v7" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-azurelinux3.0": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0": {} + }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/nanoserver-ltsc2025/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-ltsc2025", + "dockerfile": "src/aspnet/9.0/azurelinux3.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|8.0|fixed-tag)-nanoserver-ltsc2025": {}, - "$(dotnet|8.0|minor-tag)-nanoserver-ltsc2025": {} + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-amd64": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-amd64": {} } - } - ] - }, - { - "productVersion": "$(dotnet|8.0|product-version)", - "platforms": [ + }, { + "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/windowsservercore-ltsc2019/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "windowsservercore-ltsc2019", + "dockerfile": "src/aspnet/9.0/azurelinux3.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2019": {}, - "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2019": {} - } + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-arm64v8": {} + }, + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|8.0|product-version)", + "productVersion": "$(dotnet|9.0|product-version)", + "sharedTags": { + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless": {} + }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/windowsservercore-ltsc2022/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "windowsservercore-ltsc2022", + "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2022": {}, - "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2022": {} - } - } - ] - }, - { - "productVersion": "$(dotnet|8.0|product-version)", - "platforms": [ + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] + }, { + "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/8.0/windowsservercore-ltsc2025/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "windowsservercore-ltsc2025", + "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|8.0|fixed-tag)-windowsservercore-ltsc2025": {}, - "$(dotnet|8.0|minor-tag)-windowsservercore-ltsc2025": {} - } + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] } ] }, { "productVersion": "$(dotnet|9.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-bookworm-slim": {}, - "$(dotnet|9.0|minor-tag)-bookworm-slim": {}, - "$(dotnet|9.0|fixed-tag)": {}, - "$(dotnet|9.0|minor-tag)": {} + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/bookworm-slim/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", - "os": "linux", - "osVersion": "bookworm-slim", - "tags": { - "$(dotnet|9.0|fixed-tag)-bookworm-slim-amd64": {}, - "$(dotnet|9.0|minor-tag)-bookworm-slim-amd64": {} - } - }, - { - "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime)" - }, - "dockerfile": "src/aspnet/9.0/bookworm-slim/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "bookworm-slim", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-bookworm-slim-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-bookworm-slim-arm32v7": {} + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} }, - "variant": "v7" + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/bookworm-slim/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "bookworm-slim", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-bookworm-slim-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-bookworm-slim-arm64v8": {} + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} }, - "variant": "v8" + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] } ] }, { "productVersion": "$(dotnet|9.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22": {}, - "$(dotnet|9.0|minor-tag)-alpine": {} + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime)" - }, - "dockerfile": "src/aspnet/9.0/alpine3.22/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", - "os": "linux", - "osVersion": "alpine3.22", - "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22-amd64": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22-amd64": {}, - "$(dotnet|9.0|minor-tag)-alpine-amd64": {} - } - }, - { - "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/alpine3.22/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-alpine-arm32v7": {} + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite-amd64": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite-amd64": {} }, - "variant": "v7" + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] }, { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/alpine3.22/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-alpine-arm64v8": {} + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite-arm64v8": {} }, - "variant": "v8" + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] } ] }, { "productVersion": "$(dotnet|9.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22-composite": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22-composite": {}, - "$(dotnet|9.0|minor-tag)-alpine-composite": {} + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite-extra": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/alpine3.22-composite/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", - "os": "linux", - "osVersion": "alpine3.22", - "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22-composite-amd64": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22-composite-amd64": {}, - "$(dotnet|9.0|minor-tag)-alpine-composite-amd64": {} - } - }, - { - "architecture": "arm", - "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/aspnet/9.0/alpine3.22-composite/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-composite-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22-composite-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22-composite-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-alpine-composite-arm32v7": {} + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-amd64": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite-extra-amd64": {} }, - "variant": "v7" + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/alpine3.22-composite/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-composite-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.22-composite-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-alpine3.22-composite-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-alpine-composite-arm64v8": {} + "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {}, + "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {} }, - "variant": "v8" + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] } ] }, { "productVersion": "$(dotnet|9.0|product-version)", - "sharedTags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23": {} - }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/alpine3.23/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", - "os": "linux", - "osVersion": "alpine3.23", + "dockerfile": "src/aspnet/9.0/nanoserver-1809/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-1809", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23-amd64": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23-amd64": {} + "$(dotnet|9.0|fixed-tag)-nanoserver-1809": {}, + "$(dotnet|9.0|minor-tag)-nanoserver-1809": {} } - }, + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "platforms": [ { - "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/alpine3.23/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", - "os": "linux", - "osVersion": "alpine3.23", + "dockerfile": "src/aspnet/9.0/nanoserver-ltsc2022/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-ltsc2022", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23-arm32v7": {} - }, - "variant": "v7" - }, + "$(dotnet|9.0|fixed-tag)-nanoserver-ltsc2022": {}, + "$(dotnet|9.0|minor-tag)-nanoserver-ltsc2022": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "platforms": [ { - "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/alpine3.23/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", - "os": "linux", - "osVersion": "alpine3.23", + "dockerfile": "src/aspnet/9.0/nanoserver-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-ltsc2025", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23-arm64v8": {} - }, - "variant": "v8" + "$(dotnet|9.0|fixed-tag)-nanoserver-ltsc2025": {}, + "$(dotnet|9.0|minor-tag)-nanoserver-ltsc2025": {} + } } ] }, { "productVersion": "$(dotnet|9.0|product-version)", - "sharedTags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23-composite": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23-composite": {} - }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/alpine3.23-composite/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", - "os": "linux", - "osVersion": "alpine3.23", + "dockerfile": "src/aspnet/9.0/windowsservercore-ltsc2019/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2019", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23-composite-amd64": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23-composite-amd64": {} + "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2019": {}, + "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2019": {} } - }, + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "platforms": [ { - "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/alpine3.23-composite/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", - "os": "linux", - "osVersion": "alpine3.23", + "dockerfile": "src/aspnet/9.0/windowsservercore-ltsc2022/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2022", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23-composite-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23-composite-arm32v7": {} - }, - "variant": "v7" - }, + "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2022": {}, + "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2022": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|9.0|product-version)", + "platforms": [ { - "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/alpine3.23-composite/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", - "os": "linux", - "osVersion": "alpine3.23", + "dockerfile": "src/aspnet/9.0/windowsservercore-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2025", "tags": { - "$(dotnet|9.0|fixed-tag)-alpine3.23-composite-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-alpine3.23-composite-arm64v8": {} - }, - "variant": "v8" + "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2025": {}, + "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2025": {} + } } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-noble": {}, - "$(dotnet|9.0|minor-tag)-noble": {} + "$(dotnet|10.0|fixed-tag)-noble": {}, + "$(dotnet|10.0|minor-tag)-noble": {}, + "$(dotnet|10.0|fixed-tag)": {}, + "$(dotnet|10.0|minor-tag)": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/noble/amd64", + "dockerfile": "src/aspnet/10.0/noble/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "noble", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-amd64": {}, - "$(dotnet|9.0|minor-tag)-noble-amd64": {} + "$(dotnet|10.0|fixed-tag)-noble-amd64": {}, + "$(dotnet|10.0|minor-tag)-noble-amd64": {} } }, { @@ -6480,13 +8167,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/noble/arm32v7", + "dockerfile": "src/aspnet/10.0/noble/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "noble", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-noble-arm32v7": {} + "$(dotnet|10.0|fixed-tag)-noble-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-noble-arm32v7": {} }, "variant": "v7" }, @@ -6495,319 +8182,252 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/noble/arm64v8", + "dockerfile": "src/aspnet/10.0/noble/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "noble", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-noble-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-noble-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-noble-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled": {} + "$(dotnet|10.0|fixed-tag)-alpine3.22": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22": {}, + "$(dotnet|10.0|minor-tag)-alpine": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled/amd64", + "dockerfile": "src/aspnet/10.0/alpine3.22/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-amd64": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-amd64": {} - }, - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-amd64" - ] - } - ] + "$(dotnet|10.0|fixed-tag)-alpine3.22-amd64": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22-amd64": {}, + "$(dotnet|10.0|minor-tag)-alpine-amd64": {} + } }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled/arm64v8", + "dockerfile": "src/aspnet/10.0/alpine3.22/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-alpine-arm32v7": {} }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm64v8" - ] - } - ] + "variant": "v7" }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled/arm32v7", + "dockerfile": "src/aspnet/10.0/alpine3.22/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-arm32v7": {} + "$(dotnet|10.0|fixed-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-alpine-arm64v8": {} }, - "variant": "v7", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm32v7" - ] - } - ] + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-extra": {} + "$(dotnet|10.0|fixed-tag)-alpine3.22-composite": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22-composite": {}, + "$(dotnet|10.0|minor-tag)-alpine-composite": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/10.0/alpine3.22-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-amd64": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-amd64": {} - }, - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-amd64" - ] - }, - { - "name": "test-dependencies", - "type": "Integral", - "dependencies": [ - "$(Repo:aspnet):$(dotnet|9.0|minor-tag)-noble-chiseled-amd64" - ] - } - ] + "$(dotnet|10.0|fixed-tag)-alpine3.22-composite-amd64": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22-composite-amd64": {}, + "$(dotnet|10.0|minor-tag)-alpine-composite-amd64": {} + } }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/10.0/alpine3.22-composite/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-alpine3.22-composite-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22-composite-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-alpine-composite-arm32v7": {} }, - "variant": "v8", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm64v8" - ] - }, - { - "name": "test-dependencies", - "type": "Integral", - "dependencies": [ - "$(Repo:aspnet):$(dotnet|9.0|minor-tag)-noble-chiseled-arm64v8" - ] - } - ] + "variant": "v7" }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled-extra/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/10.0/alpine3.22-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.22", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-extra-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-extra-arm32v7": {} + "$(dotnet|10.0|fixed-tag)-alpine3.22-composite-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-alpine3.22-composite-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-alpine-composite-arm64v8": {} }, - "variant": "v7", - "customBuildLegGroups": [ - { - "name": "pr-build", - "type": "Supplemental", - "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-noble-arm32v7" - ] - }, - { - "name": "test-dependencies", - "type": "Integral", - "dependencies": [ - "$(Repo:aspnet):$(dotnet|9.0|minor-tag)-noble-chiseled-arm32v7" - ] - } - ] + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-extra": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-extra": {} + "$(dotnet|10.0|fixed-tag)-alpine3.23": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled-composite-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "dockerfile": "src/aspnet/10.0/alpine3.23/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-extra-amd64": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-extra-amd64": {} + "$(dotnet|10.0|fixed-tag)-alpine3.23-amd64": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23-amd64": {} } }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled-composite-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "dockerfile": "src/aspnet/10.0/alpine3.23/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-extra-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-extra-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23-arm32v7": {} }, - "variant": "v8" + "variant": "v7" }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled-composite-extra/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "dockerfile": "src/aspnet/10.0/alpine3.23/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-extra-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-extra-arm32v7": {} + "$(dotnet|10.0|fixed-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23-arm64v8": {} }, - "variant": "v7" + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-composite": {} + "$(dotnet|10.0|fixed-tag)-alpine3.23-composite": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23-composite": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled-composite/amd64", + "dockerfile": "src/aspnet/10.0/alpine3.23-composite/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-amd64": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-amd64": {} + "$(dotnet|10.0|fixed-tag)-alpine3.23-composite-amd64": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23-composite-amd64": {} } }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled-composite/arm64v8", + "dockerfile": "src/aspnet/10.0/alpine3.23-composite/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-alpine3.23-composite-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23-composite-arm32v7": {} }, - "variant": "v8" + "variant": "v7" }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/noble-chiseled-composite/arm32v7", + "dockerfile": "src/aspnet/10.0/alpine3.23-composite/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "alpine3.23", "tags": { - "$(dotnet|9.0|fixed-tag)-noble-chiseled-composite-arm32v7": {}, - "$(dotnet|9.0|minor-tag)-noble-chiseled-composite-arm32v7": {} + "$(dotnet|10.0|fixed-tag)-alpine3.23-composite-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-alpine3.23-composite-arm64v8": {} }, - "variant": "v7" + "variant": "v8" } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/azurelinux3.0/amd64", + "dockerfile": "src/aspnet/10.0/azurelinux3.0/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-amd64": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-amd64": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-amd64": {} } }, { @@ -6815,50 +8435,50 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/azurelinux3.0/arm64v8", + "dockerfile": "src/aspnet/10.0/azurelinux3.0/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless/amd64", + "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" ] } ] @@ -6868,13 +8488,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless/arm64v8", + "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -6882,14 +8502,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -6897,37 +8517,37 @@ ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-extra/amd64", + "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" ] } ] @@ -6937,13 +8557,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-extra/arm64v8", + "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -6951,14 +8571,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -6966,37 +8586,37 @@ ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-composite/amd64", + "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-composite/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite-amd64": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite-amd64": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" ] } ] @@ -7006,13 +8626,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-composite/arm64v8", + "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-composite/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -7020,14 +8640,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -7035,37 +8655,185 @@ ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite-extra": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite-extra": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite-extra": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-composite-extra/amd64", + "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-composite-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-amd64": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite-extra-amd64": {} + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-composite-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/10.0/noble-chiseled/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-amd64": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/10.0/noble-chiseled/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm64v8" + ] + } + ] + }, + { + "architecture": "arm", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/10.0/noble-chiseled/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-arm32v7": {} + }, + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm32v7" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/10.0/noble-chiseled-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "noble-chiseled", + "tags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-amd64": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:aspnet):$(dotnet|10.0|minor-tag)-noble-chiseled-amd64" ] } ] @@ -7073,15 +8841,15 @@ { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/azurelinux3.0-distroless-composite-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "dockerfile": "src/aspnet/10.0/noble-chiseled-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|9.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {}, - "$(dotnet|9.0|minor-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -7089,313 +8857,302 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|9.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:aspnet):$(dotnet|10.0|minor-tag)-noble-chiseled-arm64v8" ] } ] - } - ] - }, - { - "productVersion": "$(dotnet|9.0|product-version)", - "platforms": [ + }, { + "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/9.0/nanoserver-1809/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-1809", + "dockerfile": "src/aspnet/10.0/noble-chiseled-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|9.0|fixed-tag)-nanoserver-1809": {}, - "$(dotnet|9.0|minor-tag)-nanoserver-1809": {} - } - } - ] - }, - { - "productVersion": "$(dotnet|9.0|product-version)", - "platforms": [ - { - "buildArgs": { - "REPO": "$(Repo:runtime)" + "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-arm32v7": {} }, - "dockerfile": "src/aspnet/9.0/nanoserver-ltsc2022/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-ltsc2022", - "tags": { - "$(dotnet|9.0|fixed-tag)-nanoserver-ltsc2022": {}, - "$(dotnet|9.0|minor-tag)-nanoserver-ltsc2022": {} - } + "variant": "v7", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm32v7" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:aspnet):$(dotnet|10.0|minor-tag)-noble-chiseled-arm32v7" + ] + } + ] } ] }, { - "productVersion": "$(dotnet|9.0|product-version)", + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-extra": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-extra": {} + }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/nanoserver-ltsc2025/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-ltsc2025", + "dockerfile": "src/aspnet/10.0/noble-chiseled-composite-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "os": "linux", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|9.0|fixed-tag)-nanoserver-ltsc2025": {}, - "$(dotnet|9.0|minor-tag)-nanoserver-ltsc2025": {} + "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-extra-amd64": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-extra-amd64": {} } - } - ] - }, - { - "productVersion": "$(dotnet|9.0|product-version)", - "platforms": [ + }, { + "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/windowsservercore-ltsc2019/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "windowsservercore-ltsc2019", + "dockerfile": "src/aspnet/10.0/noble-chiseled-composite-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "os": "linux", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2019": {}, - "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2019": {} - } - } - ] - }, - { - "productVersion": "$(dotnet|9.0|product-version)", - "platforms": [ - { - "buildArgs": { - "REPO": "$(Repo:runtime)" + "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-extra-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-extra-arm64v8": {} }, - "dockerfile": "src/aspnet/9.0/windowsservercore-ltsc2022/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "windowsservercore-ltsc2022", - "tags": { - "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2022": {}, - "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2022": {} - } - } - ] - }, - { - "productVersion": "$(dotnet|9.0|product-version)", - "platforms": [ + "variant": "v8" + }, { + "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/9.0/windowsservercore-ltsc2025/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "windowsservercore-ltsc2025", + "dockerfile": "src/aspnet/10.0/noble-chiseled-composite-extra/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "os": "linux", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|9.0|fixed-tag)-windowsservercore-ltsc2025": {}, - "$(dotnet|9.0|minor-tag)-windowsservercore-ltsc2025": {} - } + "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-extra-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-extra-arm32v7": {} + }, + "variant": "v7" } ] }, { "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-noble": {}, - "$(dotnet|10.0|minor-tag)-noble": {}, - "$(dotnet|10.0|fixed-tag)": {}, - "$(dotnet|10.0|minor-tag)": {}, - "latest": {} + "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-composite": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/noble/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/10.0/noble-chiseled-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-amd64": {}, - "$(dotnet|10.0|minor-tag)-noble-amd64": {} + "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-amd64": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-amd64": {} } }, { - "architecture": "arm", + "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/noble/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/10.0/noble-chiseled-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-noble-arm32v7": {} + "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-arm64v8": {} }, - "variant": "v7" + "variant": "v8" }, { - "architecture": "arm64", + "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/noble/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/10.0/noble-chiseled-composite/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble", + "osVersion": "noble-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-noble-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-arm32v7": {}, + "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-arm32v7": {} }, - "variant": "v8" + "variant": "v7" } ] }, { "productVersion": "$(dotnet|10.0|product-version)", - "sharedTags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22": {}, - "$(dotnet|10.0|minor-tag)-alpine": {} - }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/alpine3.22/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", - "os": "linux", - "osVersion": "alpine3.22", + "dockerfile": "src/aspnet/10.0/nanoserver-ltsc2022/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-ltsc2022", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22-amd64": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22-amd64": {}, - "$(dotnet|10.0|minor-tag)-alpine-amd64": {} + "$(dotnet|10.0|fixed-tag)-nanoserver-ltsc2022": {}, + "$(dotnet|10.0|minor-tag)-nanoserver-ltsc2022": {} } - }, + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "platforms": [ { - "architecture": "arm", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/alpine3.22/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", - "os": "linux", - "osVersion": "alpine3.22", + "dockerfile": "src/aspnet/10.0/nanoserver-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-ltsc2025", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-alpine-arm32v7": {} - }, - "variant": "v7" - }, + "$(dotnet|10.0|fixed-tag)-nanoserver-ltsc2025": {}, + "$(dotnet|10.0|minor-tag)-nanoserver-ltsc2025": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "platforms": [ { - "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/alpine3.22/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", - "os": "linux", - "osVersion": "alpine3.22", + "dockerfile": "src/aspnet/10.0/windowsservercore-ltsc2022/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2022", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-alpine-arm64v8": {} - }, - "variant": "v8" + "$(dotnet|10.0|fixed-tag)-windowsservercore-ltsc2022": {}, + "$(dotnet|10.0|minor-tag)-windowsservercore-ltsc2022": {} + } } ] }, { "productVersion": "$(dotnet|10.0|product-version)", + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/10.0/windowsservercore-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2025", + "tags": { + "$(dotnet|10.0|fixed-tag)-windowsservercore-ltsc2025": {}, + "$(dotnet|10.0|minor-tag)-windowsservercore-ltsc2025": {} + } + } + ] + }, + { + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22-composite": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22-composite": {}, - "$(dotnet|10.0|minor-tag)-alpine-composite": {} + "$(dotnet|11.0|fixed-tag)-resolute": {}, + "$(dotnet|11.0|minor-tag)-resolute": {}, + "$(dotnet|11.0|fixed-tag)": {}, + "$(dotnet|11.0|minor-tag)": {}, + "latest": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/alpine3.22-composite/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/11.0/resolute/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "resolute", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22-composite-amd64": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22-composite-amd64": {}, - "$(dotnet|10.0|minor-tag)-alpine-composite-amd64": {} + "$(dotnet|11.0|fixed-tag)-resolute-amd64": {}, + "$(dotnet|11.0|minor-tag)-resolute-amd64": {} } }, { "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/alpine3.22-composite/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/11.0/resolute/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "resolute", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22-composite-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22-composite-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-alpine-composite-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-resolute-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-resolute-arm32v7": {} }, "variant": "v7" }, { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" + "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/alpine3.22-composite/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "dockerfile": "src/aspnet/11.0/resolute/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "alpine3.22", + "osVersion": "resolute", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.22-composite-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-alpine3.22-composite-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-alpine-composite-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-resolute-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-resolute-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23": {}, + "$(dotnet|11.0|minor-tag)-alpine": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/alpine3.23/amd64", + "dockerfile": "src/aspnet/11.0/alpine3.23/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23-amd64": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23-amd64": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-amd64": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-amd64": {}, + "$(dotnet|11.0|minor-tag)-alpine-amd64": {} } }, { @@ -7403,13 +9160,14 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/alpine3.23/arm32v7", + "dockerfile": "src/aspnet/11.0/alpine3.23/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-alpine-arm32v7": {} }, "variant": "v7" }, @@ -7418,36 +9176,39 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/alpine3.23/arm64v8", + "dockerfile": "src/aspnet/11.0/alpine3.23/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23-composite": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23-composite": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-composite": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-composite": {}, + "$(dotnet|11.0|minor-tag)-alpine-composite": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/alpine3.23-composite/amd64", + "dockerfile": "src/aspnet/11.0/alpine3.23-composite/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23-composite-amd64": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23-composite-amd64": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-composite-amd64": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-composite-amd64": {}, + "$(dotnet|11.0|minor-tag)-alpine-composite-amd64": {} } }, { @@ -7455,13 +9216,14 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/alpine3.23-composite/arm32v7", + "dockerfile": "src/aspnet/11.0/alpine3.23-composite/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23-composite-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23-composite-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-composite-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-composite-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-alpine-composite-arm32v7": {} }, "variant": "v7" }, @@ -7470,36 +9232,37 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/alpine3.23-composite/arm64v8", + "dockerfile": "src/aspnet/11.0/alpine3.23-composite/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", "osVersion": "alpine3.23", "tags": { - "$(dotnet|10.0|fixed-tag)-alpine3.23-composite-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-alpine3.23-composite-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-alpine3.23-composite-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-composite-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine-composite-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/azurelinux3.0/amd64", + "dockerfile": "src/aspnet/11.0/azurelinux3.0/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-amd64": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-amd64": {} } }, { @@ -7507,50 +9270,50 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/azurelinux3.0/arm64v8", + "dockerfile": "src/aspnet/11.0/azurelinux3.0/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "azurelinux3.0", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-arm64v8": {} }, "variant": "v8" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless/amd64", + "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] } ] @@ -7560,13 +9323,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless/arm64v8", + "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -7574,14 +9337,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -7589,37 +9352,37 @@ ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-extra/amd64", + "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] } ] @@ -7629,13 +9392,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-extra/arm64v8", + "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -7643,14 +9406,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -7658,37 +9421,37 @@ ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-composite/amd64", + "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless-composite/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite-amd64": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] } ] @@ -7698,13 +9461,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-composite/arm64v8", + "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless-composite/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -7712,14 +9475,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -7727,37 +9490,37 @@ ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite-extra": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite-extra": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite-extra": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-composite-extra/amd64", + "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-amd64": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite-extra-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-extra-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" ] } ] @@ -7767,13 +9530,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless-composite-extra/arm64v8", + "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", "osVersion": "azurelinux3.0-distroless", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -7781,14 +9544,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] } ] @@ -7796,30 +9559,30 @@ ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/noble-chiseled/amd64", + "dockerfile": "src/aspnet/11.0/resolute-chiseled/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-amd64": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-amd64": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-amd64": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-amd64" ] } ] @@ -7829,13 +9592,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/noble-chiseled/arm64v8", + "dockerfile": "src/aspnet/11.0/resolute-chiseled/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -7843,7 +9606,7 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm64v8" ] } ] @@ -7853,13 +9616,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/noble-chiseled/arm32v7", + "dockerfile": "src/aspnet/11.0/resolute-chiseled/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-arm32v7": {} }, "variant": "v7", "customBuildLegGroups": [ @@ -7867,7 +9630,7 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm32v7" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm32v7" ] } ] @@ -7875,37 +9638,37 @@ ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-extra": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/noble-chiseled-extra/amd64", + "dockerfile": "src/aspnet/11.0/resolute-chiseled-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-amd64": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-amd64": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:aspnet):$(dotnet|10.0|minor-tag)-noble-chiseled-amd64" + "$(Repo:aspnet):$(dotnet|11.0|minor-tag)-resolute-chiseled-amd64" ] } ] @@ -7915,13 +9678,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/noble-chiseled-extra/arm64v8", + "dockerfile": "src/aspnet/11.0/resolute-chiseled-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -7929,14 +9692,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:aspnet):$(dotnet|10.0|minor-tag)-noble-chiseled-arm64v8" + "$(Repo:aspnet):$(dotnet|11.0|minor-tag)-resolute-chiseled-arm64v8" ] } ] @@ -7946,13 +9709,13 @@ "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/noble-chiseled-extra/arm32v7", + "dockerfile": "src/aspnet/11.0/resolute-chiseled-extra/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-extra-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-extra-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-extra-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-extra-arm32v7": {} }, "variant": "v7", "customBuildLegGroups": [ @@ -7960,14 +9723,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|10.0|minor-tag)-noble-arm32v7" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-resolute-arm32v7" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:aspnet):$(dotnet|10.0|minor-tag)-noble-chiseled-arm32v7" + "$(Repo:aspnet):$(dotnet|11.0|minor-tag)-resolute-chiseled-arm32v7" ] } ] @@ -7975,23 +9738,23 @@ ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-extra": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-extra": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-composite-extra": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-composite-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/noble-chiseled-composite-extra/amd64", + "dockerfile": "src/aspnet/11.0/resolute-chiseled-composite-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-extra-amd64": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-extra-amd64": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-composite-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-composite-extra-amd64": {} } }, { @@ -7999,13 +9762,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/noble-chiseled-composite-extra/arm64v8", + "dockerfile": "src/aspnet/11.0/resolute-chiseled-composite-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-extra-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-extra-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-composite-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-composite-extra-arm64v8": {} }, "variant": "v8" }, @@ -8014,36 +9777,36 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/noble-chiseled-composite-extra/arm32v7", + "dockerfile": "src/aspnet/11.0/resolute-chiseled-composite-extra/arm32v7", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-extra-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-extra-arm32v7": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-composite-extra-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-composite-extra-arm32v7": {} }, "variant": "v7" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-composite": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-composite": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-composite": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/noble-chiseled-composite/amd64", + "dockerfile": "src/aspnet/11.0/resolute-chiseled-composite/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-amd64": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-amd64": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-composite-amd64": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-composite-amd64": {} } }, { @@ -8051,101 +9814,65 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/noble-chiseled-composite/arm64v8", + "dockerfile": "src/aspnet/11.0/resolute-chiseled-composite/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "noble-chiseled", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-composite-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-composite-arm64v8": {} }, "variant": "v8" }, { "architecture": "arm", "buildArgs": { - "REPO": "$(Repo:runtime-deps)" - }, - "dockerfile": "src/aspnet/10.0/noble-chiseled-composite/arm32v7", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", - "os": "linux", - "osVersion": "noble-chiseled", - "tags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled-composite-arm32v7": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled-composite-arm32v7": {} - }, - "variant": "v7" - } - ] - }, - { - "productVersion": "$(dotnet|10.0|product-version)", - "platforms": [ - { - "buildArgs": { - "REPO": "$(Repo:runtime)" - }, - "dockerfile": "src/aspnet/10.0/nanoserver-ltsc2022/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-ltsc2022", - "tags": { - "$(dotnet|10.0|fixed-tag)-nanoserver-ltsc2022": {}, - "$(dotnet|10.0|minor-tag)-nanoserver-ltsc2022": {} - } - } - ] - }, - { - "productVersion": "$(dotnet|10.0|product-version)", - "platforms": [ - { - "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/10.0/nanoserver-ltsc2025/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", - "os": "windows", - "osVersion": "nanoserver-ltsc2025", + "dockerfile": "src/aspnet/11.0/resolute-chiseled-composite/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "os": "linux", + "osVersion": "resolute-chiseled", "tags": { - "$(dotnet|10.0|fixed-tag)-nanoserver-ltsc2025": {}, - "$(dotnet|10.0|minor-tag)-nanoserver-ltsc2025": {} - } + "$(dotnet|11.0|fixed-tag)-resolute-chiseled-composite-arm32v7": {}, + "$(dotnet|11.0|minor-tag)-resolute-chiseled-composite-arm32v7": {} + }, + "variant": "v7" } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/windowsservercore-ltsc2022/amd64", + "dockerfile": "src/aspnet/11.0/nanoserver-ltsc2025/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", "os": "windows", - "osVersion": "windowsservercore-ltsc2022", + "osVersion": "nanoserver-ltsc2025", "tags": { - "$(dotnet|10.0|fixed-tag)-windowsservercore-ltsc2022": {}, - "$(dotnet|10.0|minor-tag)-windowsservercore-ltsc2022": {} + "$(dotnet|11.0|fixed-tag)-nanoserver-ltsc2025": {}, + "$(dotnet|11.0|minor-tag)-nanoserver-ltsc2025": {} } } ] }, { - "productVersion": "$(dotnet|10.0|product-version)", + "productVersion": "$(dotnet|11.0|product-version)", "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/windowsservercore-ltsc2025/amd64", + "dockerfile": "src/aspnet/11.0/windowsservercore-ltsc2025/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.windows", "os": "windows", "osVersion": "windowsservercore-ltsc2025", "tags": { - "$(dotnet|10.0|fixed-tag)-windowsservercore-ltsc2025": {}, - "$(dotnet|10.0|minor-tag)-windowsservercore-ltsc2025": {} + "$(dotnet|11.0|fixed-tag)-windowsservercore-ltsc2025": {}, + "$(dotnet|11.0|minor-tag)-windowsservercore-ltsc2025": {} } } ] @@ -8990,8 +10717,7 @@ "$(sdk|10.0|fixed-tag)-noble": {}, "$(sdk|10.0|minor-tag)-noble": {}, "$(sdk|10.0|fixed-tag)": {}, - "$(sdk|10.0|minor-tag)": {}, - "latest": {} + "$(sdk|10.0|minor-tag)": {} }, "platforms": [ { @@ -9444,6 +11170,324 @@ } } ] + }, + { + "productVersion": "$(sdk|11.0|product-version)", + "sharedTags": { + "$(sdk|11.0|fixed-tag)-resolute": {}, + "$(sdk|11.0|minor-tag)-resolute": {}, + "$(sdk|11.0|fixed-tag)": {}, + "$(sdk|11.0|minor-tag)": {}, + "latest": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "dockerfile": "src/sdk/11.0/resolute/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "resolute", + "tags": { + "$(sdk|11.0|fixed-tag)-resolute-amd64": {}, + "$(sdk|11.0|minor-tag)-resolute-amd64": {} + } + }, + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "architecture": "arm", + "dockerfile": "src/sdk/11.0/resolute/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "resolute", + "tags": { + "$(sdk|11.0|fixed-tag)-resolute-arm32v7": {}, + "$(sdk|11.0|minor-tag)-resolute-arm32v7": {} + }, + "variant": "v7" + }, + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "architecture": "arm64", + "dockerfile": "src/sdk/11.0/resolute/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "resolute", + "tags": { + "$(sdk|11.0|fixed-tag)-resolute-arm64v8": {}, + "$(sdk|11.0|minor-tag)-resolute-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(sdk|11.0|product-version)", + "sharedTags": { + "$(sdk|11.0|fixed-tag)-resolute-aot": {}, + "$(sdk|11.0|minor-tag)-resolute-aot": {}, + "$(sdk|11.0|fixed-tag)-aot": {}, + "$(sdk|11.0|minor-tag)-aot": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:sdk)" + }, + "dockerfile": "src/sdk/11.0/resolute-aot/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux.aot", + "os": "linux", + "osVersion": "resolute", + "tags": { + "$(sdk|11.0|fixed-tag)-resolute-aot-amd64": {}, + "$(sdk|11.0|minor-tag)-resolute-aot-amd64": {} + } + }, + { + "buildArgs": { + "REPO": "$(Repo:sdk)" + }, + "architecture": "arm64", + "dockerfile": "src/sdk/11.0/resolute-aot/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux.aot", + "os": "linux", + "osVersion": "resolute", + "tags": { + "$(sdk|11.0|fixed-tag)-resolute-aot-arm64v8": {}, + "$(sdk|11.0|minor-tag)-resolute-aot-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(sdk|11.0|product-version)", + "sharedTags": { + "$(sdk|11.0|fixed-tag)-alpine3.23": {}, + "$(sdk|11.0|minor-tag)-alpine3.23": {}, + "$(sdk|11.0|minor-tag)-alpine": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "dockerfile": "src/sdk/11.0/alpine3.23/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(sdk|11.0|fixed-tag)-alpine3.23-amd64": {}, + "$(sdk|11.0|minor-tag)-alpine3.23-amd64": {}, + "$(sdk|11.0|minor-tag)-alpine-amd64": {} + } + }, + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "architecture": "arm", + "dockerfile": "src/sdk/11.0/alpine3.23/arm32v7", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(sdk|11.0|fixed-tag)-alpine3.23-arm32v7": {}, + "$(sdk|11.0|minor-tag)-alpine3.23-arm32v7": {}, + "$(sdk|11.0|minor-tag)-alpine-arm32v7": {} + }, + "variant": "v7" + }, + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "architecture": "arm64", + "dockerfile": "src/sdk/11.0/alpine3.23/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(sdk|11.0|fixed-tag)-alpine3.23-arm64v8": {}, + "$(sdk|11.0|minor-tag)-alpine3.23-arm64v8": {}, + "$(sdk|11.0|minor-tag)-alpine-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(sdk|11.0|product-version)", + "sharedTags": { + "$(sdk|11.0|fixed-tag)-alpine3.23-aot": {}, + "$(sdk|11.0|minor-tag)-alpine3.23-aot": {}, + "$(sdk|11.0|minor-tag)-alpine-aot": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:sdk)" + }, + "dockerfile": "src/sdk/11.0/alpine3.23-aot/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux.aot", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(sdk|11.0|fixed-tag)-alpine3.23-aot-amd64": {}, + "$(sdk|11.0|minor-tag)-alpine3.23-aot-amd64": {}, + "$(sdk|11.0|minor-tag)-alpine-aot-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-alpine3.23-amd64" + ] + } + ] + }, + { + "buildArgs": { + "REPO": "$(Repo:sdk)" + }, + "architecture": "arm64", + "dockerfile": "src/sdk/11.0/alpine3.23-aot/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux.aot", + "os": "linux", + "osVersion": "alpine3.23", + "tags": { + "$(sdk|11.0|fixed-tag)-alpine3.23-aot-arm64v8": {}, + "$(sdk|11.0|minor-tag)-alpine3.23-aot-arm64v8": {}, + "$(sdk|11.0|minor-tag)-alpine-aot-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-alpine3.23-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(sdk|11.0|product-version)", + "sharedTags": { + "$(sdk|11.0|fixed-tag)-azurelinux3.0": {}, + "$(sdk|11.0|minor-tag)-azurelinux3.0": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "dockerfile": "src/sdk/11.0/azurelinux3.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(sdk|11.0|fixed-tag)-azurelinux3.0-amd64": {}, + "$(sdk|11.0|minor-tag)-azurelinux3.0-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "dockerfile": "src/sdk/11.0/azurelinux3.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(sdk|11.0|fixed-tag)-azurelinux3.0-arm64v8": {}, + "$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(sdk|11.0|product-version)", + "sharedTags": { + "$(sdk|11.0|fixed-tag)-azurelinux3.0-aot": {}, + "$(sdk|11.0|minor-tag)-azurelinux3.0-aot": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:sdk)" + }, + "dockerfile": "src/sdk/11.0/azurelinux3.0-aot/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux.aot", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(sdk|11.0|fixed-tag)-azurelinux3.0-aot-amd64": {}, + "$(sdk|11.0|minor-tag)-azurelinux3.0-aot-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:sdk)" + }, + "dockerfile": "src/sdk/11.0/azurelinux3.0-aot/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux.aot", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(sdk|11.0|fixed-tag)-azurelinux3.0-aot-arm64v8": {}, + "$(sdk|11.0|minor-tag)-azurelinux3.0-aot-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(sdk|11.0|product-version)", + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "dockerfile": "src/sdk/11.0/nanoserver-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.windows", + "os": "windows", + "osVersion": "nanoserver-ltsc2025", + "tags": { + "$(sdk|11.0|fixed-tag)-nanoserver-ltsc2025": {}, + "$(sdk|11.0|minor-tag)-nanoserver-ltsc2025": {} + } + } + ] + }, + { + "productVersion": "$(sdk|11.0|product-version)", + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "dockerfile": "src/sdk/11.0/windowsservercore-ltsc2025/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.windows", + "os": "windows", + "osVersion": "windowsservercore-ltsc2025", + "tags": { + "$(sdk|11.0|fixed-tag)-windowsservercore-ltsc2025": {}, + "$(sdk|11.0|minor-tag)-windowsservercore-ltsc2025": {} + } + } + ] } ] }, diff --git a/manifest.versions.json b/manifest.versions.json index 6a14c1e25c..a86a4e4922 100644 --- a/manifest.versions.json +++ b/manifest.versions.json @@ -13,6 +13,7 @@ "base-url|public-checksums|preview|nightly": "https://ci.dot.net/public-checksums", "alpine|floating-tag-version": "alpine3.22", + "alpine|11.0|floating-tag-version": "alpine3.23", "alpine|10.0|floating-tag-version": "$(alpine|floating-tag-version)", "alpine|9.0|floating-tag-version": "$(alpine|floating-tag-version)", "alpine|8.0|floating-tag-version": "$(alpine|floating-tag-version)", @@ -30,6 +31,9 @@ "aspnet|8.0|build-version": "8.0.22", "aspnet-composite|8.0|build-version": "$(aspnet|8.0|build-version)", + "aspnet|11.0|build-version": "11.0.0-alpha.1.25609.108", + "aspnet-composite|11.0|build-version": "$(aspnet|11.0|build-version)", + "aspnet|10.0|build-version": "10.0.1", "aspnet-composite|10.0|build-version": "$(aspnet|10.0|build-version)", @@ -43,6 +47,9 @@ "chisel|10.0|x64|url": "$(chisel|latest|x64|url)", "chisel|10.0|arm|url": "$(chisel|latest|arm|url)", "chisel|10.0|arm64|url": "$(chisel|latest|arm64|url)", + "chisel|11.0|x64|url": "$(chisel|latest|x64|url)", + "chisel|11.0|arm|url": "$(chisel|latest|arm|url)", + "chisel|11.0|arm64|url": "$(chisel|latest|arm64|url)", "chisel|9.0|x64|url": "$(chisel|latest|x64|url)", "chisel|9.0|arm|url": "$(chisel|latest|arm|url)", "chisel|9.0|arm64|url": "$(chisel|latest|arm64|url)", @@ -56,6 +63,9 @@ "chisel|10.0|x64|sha384": "$(chisel|latest|x64|sha384)", "chisel|10.0|arm|sha384": "$(chisel|latest|arm|sha384)", "chisel|10.0|arm64|sha384": "$(chisel|latest|arm64|sha384)", + "chisel|11.0|x64|sha384": "$(chisel|latest|x64|sha384)", + "chisel|11.0|arm|sha384": "$(chisel|latest|arm|sha384)", + "chisel|11.0|arm64|sha384": "$(chisel|latest|arm64|sha384)", "chisel|9.0|x64|sha384": "$(chisel|latest|x64|sha384)", "chisel|9.0|arm|sha384": "$(chisel|latest|arm|sha384)", "chisel|9.0|arm64|sha384": "$(chisel|latest|arm64|sha384)", @@ -89,11 +99,20 @@ "dotnet|10.0|base-url|checksums|main": "$(base-url|public|maintenance|main)", "dotnet|10.0|base-url|checksums|nightly": "$(base-url|public|maintenance|nightly)", + "dotnet|11.0|product-version": "11.0.0-alpha.1", + "dotnet|11.0|fixed-tag": "$(dotnet|11.0|product-version)", + "dotnet|11.0|minor-tag": "11.0-preview", + "dotnet|11.0|base-url|main": "$(base-url|public|preview|main)", + "dotnet|11.0|base-url|nightly": "$(base-url|public|preview|nightly)", + "dotnet|11.0|base-url|checksums|main": "$(base-url|public-checksums|preview|main)", + "dotnet|11.0|base-url|checksums|nightly": "$(base-url|public-checksums|preview|nightly)", + "libicu|bookworm": 72, "libicu|bullseye": 67, "libicu|focal": 66, "libicu|jammy": 70, "libicu|noble": 74, + "libicu|resolute": 76, "libssl|alpine3.22": "3", "libssl|alpine3.23": "3", @@ -102,6 +121,7 @@ "libssl|focal": "1.1", "libssl|jammy": "3", "libssl|noble": "3t64", + "libssl|resolute": "3t64", "mingit|latest|x64|url": "https://github.com/git-for-windows/git/releases/download/v2.52.0.windows.1/MinGit-2.52.0-64-bit.zip", "mingit|latest|x64|sha": "f42a561840627747ad48e6ece05a14093292d31f3393a401a7f7c780ee7695c2", @@ -111,6 +131,8 @@ "mingit|9.0|x64|sha": "$(mingit|latest|x64|sha)", "mingit|10.0|x64|url": "$(mingit|latest|x64|url)", "mingit|10.0|x64|sha": "$(mingit|latest|x64|sha)", + "mingit|11.0|x64|url": "$(mingit|latest|x64|url)", + "mingit|11.0|x64|sha": "$(mingit|latest|x64|sha)", "monitor|8|major-tag": "8", "monitor|8.1|build-version": "8.1.3-servicing.25556.1", @@ -172,6 +194,13 @@ "powershell|10.0|Linux|x64|sha": "92ba2a8344f13d1c640f73d61488a582bae3ea82e4d00aad02efece3475f852855fb6f8ac37f72b4a14cdc1975af9f253d59ce72e36f3653e6b1ee87dc273f8f", "powershell|10.0|Windows|x64|sha": "a529408a93ca2be753d84137bff8ed95dc9301faf2da62fbd9d7bfb29fe502bfca9427736b1004884e839e3f2585ac613349f0fbbb97ea6f979b115dcf06aa0c", + "powershell|11.0|build-version": "7.6.0-preview.4", + "powershell|11.0|Linux.Alpine|sha": "$(powershell|10.0|Linux.Alpine|sha)", + "powershell|11.0|Linux|arm32|sha": "$(powershell|10.0|Linux|arm32|sha)", + "powershell|11.0|Linux|arm64|sha": "$(powershell|10.0|Linux|arm64|sha)", + "powershell|11.0|Linux|x64|sha": "$(powershell|10.0|Linux|x64|sha)", + "powershell|11.0|Windows|x64|sha": "$(powershell|10.0|Windows|x64|sha)", + "yarp|2.3|build-version": "3.0.0-preview.1.25375.1", "yarp|2.3|product-version": "2.3.0-preview.5", "yarp|2.3|fixed-tag": "$(yarp|2.3|product-version)", @@ -187,15 +216,18 @@ "rocks-toolbox|8.0|url": "$(rocks-toolbox|latest|url)", "rocks-toolbox|9.0|url": "$(rocks-toolbox|latest|url)", "rocks-toolbox|10.0|url": "$(rocks-toolbox|latest|url)", + "rocks-toolbox|11.0|url": "$(rocks-toolbox|latest|url)", "rocks-toolbox|latest|version": "v1.2.0", "rocks-toolbox|8.0|version": "$(rocks-toolbox|latest|version)", "rocks-toolbox|9.0|version": "$(rocks-toolbox|latest|version)", "rocks-toolbox|10.0|version": "$(rocks-toolbox|latest|version)", + "rocks-toolbox|11.0|version": "$(rocks-toolbox|latest|version)", "runtime|8.0|build-version": "8.0.22", "runtime|9.0|build-version": "9.0.11", "runtime|10.0|build-version": "10.0.1", + "runtime|11.0|build-version": "11.0.0-alpha.1.25609.108", "sdk|8.0|build-version": "8.0.416", "sdk|8.0|product-version": "8.0.416", @@ -224,6 +256,15 @@ "sdk|10.0|fixed-tag": "$(sdk|10.0|product-version)", "sdk|10.0|minor-tag": "$(dotnet|10.0|minor-tag)", + "sdk|11.0|build-version": "11.0.100-alpha.1.25609.108", + "sdk|11.0|product-version": "11.0.100-alpha.1", + "sdk|11.0|base-url|main": "$(dotnet|11.0|base-url|main)", + "sdk|11.0|base-url|nightly": "$(dotnet|11.0|base-url|nightly)", + "sdk|11.0|base-url|checksums|main": "$(dotnet|11.0|base-url|checksums|main)", + "sdk|11.0|base-url|checksums|nightly": "$(dotnet|11.0|base-url|checksums|nightly)", + "sdk|11.0|fixed-tag": "$(sdk|11.0|product-version)", + "sdk|11.0|minor-tag": "$(dotnet|11.0|minor-tag)", + "syft|repo": "anchore/syft", "syft|version": "v1.38.0", "syft|tag": "$(syft|version)-debug" diff --git a/src/aspnet/11.0/alpine3.23-composite/amd64/Dockerfile b/src/aspnet/11.0/alpine3.23-composite/amd64/Dockerfile new file mode 100644 index 0000000000..d594eb6b7c --- /dev/null +++ b/src/aspnet/11.0/alpine3.23-composite/amd64/Dockerfile @@ -0,0 +1,29 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-amd64 AS installer + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz \ + https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz --directory /dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-alpine3.23-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/aspnet/11.0/alpine3.23-composite/arm32v7/Dockerfile b/src/aspnet/11.0/alpine3.23-composite/arm32v7/Dockerfile new file mode 100644 index 0000000000..e7c06b320d --- /dev/null +++ b/src/aspnet/11.0/alpine3.23-composite/arm32v7/Dockerfile @@ -0,0 +1,29 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm32v7 AS installer + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz \ + https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz --directory /dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm32v7 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/aspnet/11.0/alpine3.23-composite/arm64v8/Dockerfile b/src/aspnet/11.0/alpine3.23-composite/arm64v8/Dockerfile new file mode 100644 index 0000000000..70bb394a5f --- /dev/null +++ b/src/aspnet/11.0/alpine3.23-composite/arm64v8/Dockerfile @@ -0,0 +1,29 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm64v8 AS installer + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz \ + https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz --directory /dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/aspnet/11.0/alpine3.23/amd64/Dockerfile b/src/aspnet/11.0/alpine3.23/amd64/Dockerfile new file mode 100644 index 0000000000..175ca68e64 --- /dev/null +++ b/src/aspnet/11.0/alpine3.23/amd64/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-amd64 AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz \ + https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-alpine3.23-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/alpine3.23/arm32v7/Dockerfile b/src/aspnet/11.0/alpine3.23/arm32v7/Dockerfile new file mode 100644 index 0000000000..32c2c9514c --- /dev/null +++ b/src/aspnet/11.0/alpine3.23/arm32v7/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm32v7 AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz \ + https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm32v7 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/alpine3.23/arm64v8/Dockerfile b/src/aspnet/11.0/alpine3.23/arm64v8/Dockerfile new file mode 100644 index 0000000000..520b4c0907 --- /dev/null +++ b/src/aspnet/11.0/alpine3.23/arm64v8/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm64v8 AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz \ + https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/amd64/Dockerfile b/src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/amd64/Dockerfile new file mode 100644 index 0000000000..26bd72b34a --- /dev/null +++ b/src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/amd64/Dockerfile @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-extra-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/arm64v8/Dockerfile b/src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..168eb066b5 --- /dev/null +++ b/src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/arm64v8/Dockerfile @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-extra-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/aspnet/11.0/azurelinux3.0-distroless-composite/amd64/Dockerfile b/src/aspnet/11.0/azurelinux3.0-distroless-composite/amd64/Dockerfile new file mode 100644 index 0000000000..0fd1707af7 --- /dev/null +++ b/src/aspnet/11.0/azurelinux3.0-distroless-composite/amd64/Dockerfile @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/aspnet/11.0/azurelinux3.0-distroless-composite/arm64v8/Dockerfile b/src/aspnet/11.0/azurelinux3.0-distroless-composite/arm64v8/Dockerfile new file mode 100644 index 0000000000..23b5bbc185 --- /dev/null +++ b/src/aspnet/11.0/azurelinux3.0-distroless-composite/arm64v8/Dockerfile @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/aspnet/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile b/src/aspnet/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile new file mode 100644 index 0000000000..cab53f47fa --- /dev/null +++ b/src/aspnet/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-extra-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile b/src/aspnet/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..366a0a812f --- /dev/null +++ b/src/aspnet/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-extra-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux3.0-distroless/amd64/Dockerfile b/src/aspnet/11.0/azurelinux3.0-distroless/amd64/Dockerfile new file mode 100644 index 0000000000..0070639a13 --- /dev/null +++ b/src/aspnet/11.0/azurelinux3.0-distroless/amd64/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile b/src/aspnet/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile new file mode 100644 index 0000000000..e82efe439c --- /dev/null +++ b/src/aspnet/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux3.0/amd64/Dockerfile b/src/aspnet/11.0/azurelinux3.0/amd64/Dockerfile new file mode 100644 index 0000000000..f9efb0e01e --- /dev/null +++ b/src/aspnet/11.0/azurelinux3.0/amd64/Dockerfile @@ -0,0 +1,29 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-amd64 AS installer + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux3.0/arm64v8/Dockerfile b/src/aspnet/11.0/azurelinux3.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..df9195c602 --- /dev/null +++ b/src/aspnet/11.0/azurelinux3.0/arm64v8/Dockerfile @@ -0,0 +1,29 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-arm64v8 AS installer + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/nanoserver-ltsc2025/amd64/Dockerfile b/src/aspnet/11.0/nanoserver-ltsc2025/amd64/Dockerfile new file mode 100644 index 0000000000..72b20cd34f --- /dev/null +++ b/src/aspnet/11.0/nanoserver-ltsc2025/amd64/Dockerfile @@ -0,0 +1,38 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +# Install ASP.NET Core Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $aspnetcore_version = '11.0.0-alpha.1.25609.108'; ` + $aspnetcore_file = 'aspnetcore-runtime-' + $aspnetcore_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $aspnetcore_file + '.sha512'; ` + ` + Invoke-WebRequest -OutFile $aspnetcore_file https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/$aspnetcore_file; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/$dotnet_sha512_file; ` + ` + if ((Get-FileHash $aspnetcore_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $aspnetcore_file --directory dotnet ./shared/Microsoft.AspNetCore.App; ` + Remove-Item -Force ` + $aspnetcore_file, ` + $dotnet_sha512_file + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-nanoserver-ltsc2025 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet/shared/Microsoft.AspNetCore.App", "/Program Files/dotnet/shared/Microsoft.AspNetCore.App"] diff --git a/src/aspnet/11.0/resolute-chiseled-composite-extra/amd64/Dockerfile b/src/aspnet/11.0/resolute-chiseled-composite-extra/amd64/Dockerfile new file mode 100644 index 0000000000..952b98b704 --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled-composite-extra/amd64/Dockerfile @@ -0,0 +1,35 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-extra-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/aspnet/11.0/resolute-chiseled-composite-extra/arm32v7/Dockerfile b/src/aspnet/11.0/resolute-chiseled-composite-extra/arm32v7/Dockerfile new file mode 100644 index 0000000000..b05f3dea18 --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled-composite-extra/arm32v7/Dockerfile @@ -0,0 +1,35 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-extra-arm32v7 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/aspnet/11.0/resolute-chiseled-composite-extra/arm64v8/Dockerfile b/src/aspnet/11.0/resolute-chiseled-composite-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..73b33a0a17 --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled-composite-extra/arm64v8/Dockerfile @@ -0,0 +1,35 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-extra-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/aspnet/11.0/resolute-chiseled-composite/amd64/Dockerfile b/src/aspnet/11.0/resolute-chiseled-composite/amd64/Dockerfile new file mode 100644 index 0000000000..59f7608c9c --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled-composite/amd64/Dockerfile @@ -0,0 +1,35 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/aspnet/11.0/resolute-chiseled-composite/arm32v7/Dockerfile b/src/aspnet/11.0/resolute-chiseled-composite/arm32v7/Dockerfile new file mode 100644 index 0000000000..dea4ff37d8 --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled-composite/arm32v7/Dockerfile @@ -0,0 +1,35 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-arm32v7 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/aspnet/11.0/resolute-chiseled-composite/arm64v8/Dockerfile b/src/aspnet/11.0/resolute-chiseled-composite/arm64v8/Dockerfile new file mode 100644 index 0000000000..ff7703d444 --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled-composite/arm64v8/Dockerfile @@ -0,0 +1,35 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/aspnet/11.0/resolute-chiseled-extra/amd64/Dockerfile b/src/aspnet/11.0/resolute-chiseled-extra/amd64/Dockerfile new file mode 100644 index 0000000000..80ac28833f --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled-extra/amd64/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-extra-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/resolute-chiseled-extra/arm32v7/Dockerfile b/src/aspnet/11.0/resolute-chiseled-extra/arm32v7/Dockerfile new file mode 100644 index 0000000000..a71108af21 --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled-extra/arm32v7/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-extra-arm32v7 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/resolute-chiseled-extra/arm64v8/Dockerfile b/src/aspnet/11.0/resolute-chiseled-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..fbc7480c32 --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled-extra/arm64v8/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-extra-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/resolute-chiseled/amd64/Dockerfile b/src/aspnet/11.0/resolute-chiseled/amd64/Dockerfile new file mode 100644 index 0000000000..34ea70f02d --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled/amd64/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/resolute-chiseled/arm32v7/Dockerfile b/src/aspnet/11.0/resolute-chiseled/arm32v7/Dockerfile new file mode 100644 index 0000000000..16d4edc7c8 --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled/arm32v7/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-arm32v7 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/resolute-chiseled/arm64v8/Dockerfile b/src/aspnet/11.0/resolute-chiseled/arm64v8/Dockerfile new file mode 100644 index 0000000000..c43ea7c1ab --- /dev/null +++ b/src/aspnet/11.0/resolute-chiseled/arm64v8/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/resolute/amd64/Dockerfile b/src/aspnet/11.0/resolute/amd64/Dockerfile new file mode 100644 index 0000000000..2535689e63 --- /dev/null +++ b/src/aspnet/11.0/resolute/amd64/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-resolute-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/resolute/arm32v7/Dockerfile b/src/aspnet/11.0/resolute/arm32v7/Dockerfile new file mode 100644 index 0000000000..f1539a3bd2 --- /dev/null +++ b/src/aspnet/11.0/resolute/arm32v7/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-resolute-arm32v7 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/resolute/arm64v8/Dockerfile b/src/aspnet/11.0/resolute/arm64v8/Dockerfile new file mode 100644 index 0000000000..19bc2f694d --- /dev/null +++ b/src/aspnet/11.0/resolute/arm64v8/Dockerfile @@ -0,0 +1,25 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-resolute-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/windowsservercore-ltsc2025/amd64/Dockerfile b/src/aspnet/11.0/windowsservercore-ltsc2025/amd64/Dockerfile new file mode 100644 index 0000000000..e3214d9f9b --- /dev/null +++ b/src/aspnet/11.0/windowsservercore-ltsc2025/amd64/Dockerfile @@ -0,0 +1,38 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +# Install ASP.NET Core Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $aspnetcore_version = '11.0.0-alpha.1.25609.108'; ` + $aspnetcore_file = 'aspnetcore-runtime-' + $aspnetcore_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $aspnetcore_file + '.sha512'; ` + ` + Invoke-WebRequest -OutFile $aspnetcore_file https://ci.dot.net/public/aspnetcore/Runtime/$aspnetcore_version/$aspnetcore_file; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://ci.dot.net/public-checksums/aspnetcore/Runtime/$aspnetcore_version/$dotnet_sha512_file; ` + ` + if ((Get-FileHash $aspnetcore_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $aspnetcore_file --directory dotnet ./shared/Microsoft.AspNetCore.App; ` + Remove-Item -Force ` + $aspnetcore_file, ` + $dotnet_sha512_file + + +# ASP.NET Core image +FROM $REPO:11.0.0-alpha.1-windowsservercore-ltsc2025 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet/shared/Microsoft.AspNetCore.App", "/Program Files/dotnet/shared/Microsoft.AspNetCore.App"] diff --git a/src/runtime-deps/11.0/alpine3.23-extra/amd64/Dockerfile b/src/runtime-deps/11.0/alpine3.23-extra/amd64/Dockerfile new file mode 100644 index 0000000000..e4e8a49348 --- /dev/null +++ b/src/runtime-deps/11.0/alpine3.23-extra/amd64/Dockerfile @@ -0,0 +1,30 @@ +FROM amd64/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + icu-data-full \ + icu-libs \ + libgcc \ + libssl3 \ + libstdc++ \ + tzdata + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/src/runtime-deps/11.0/alpine3.23-extra/arm32v7/Dockerfile b/src/runtime-deps/11.0/alpine3.23-extra/arm32v7/Dockerfile new file mode 100644 index 0000000000..459793f172 --- /dev/null +++ b/src/runtime-deps/11.0/alpine3.23-extra/arm32v7/Dockerfile @@ -0,0 +1,30 @@ +FROM arm32v7/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + icu-data-full \ + icu-libs \ + libgcc \ + libssl3 \ + libstdc++ \ + tzdata + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/src/runtime-deps/11.0/alpine3.23-extra/arm64v8/Dockerfile b/src/runtime-deps/11.0/alpine3.23-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..cdbd11bda4 --- /dev/null +++ b/src/runtime-deps/11.0/alpine3.23-extra/arm64v8/Dockerfile @@ -0,0 +1,30 @@ +FROM arm64v8/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + icu-data-full \ + icu-libs \ + libgcc \ + libssl3 \ + libstdc++ \ + tzdata + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/src/runtime-deps/11.0/alpine3.23/amd64/Dockerfile b/src/runtime-deps/11.0/alpine3.23/amd64/Dockerfile new file mode 100644 index 0000000000..3584d9343b --- /dev/null +++ b/src/runtime-deps/11.0/alpine3.23/amd64/Dockerfile @@ -0,0 +1,29 @@ +FROM amd64/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + libgcc \ + libssl3 \ + libstdc++ + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/src/runtime-deps/11.0/alpine3.23/arm32v7/Dockerfile b/src/runtime-deps/11.0/alpine3.23/arm32v7/Dockerfile new file mode 100644 index 0000000000..44fac11e41 --- /dev/null +++ b/src/runtime-deps/11.0/alpine3.23/arm32v7/Dockerfile @@ -0,0 +1,29 @@ +FROM arm32v7/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + libgcc \ + libssl3 \ + libstdc++ + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/src/runtime-deps/11.0/alpine3.23/arm64v8/Dockerfile b/src/runtime-deps/11.0/alpine3.23/arm64v8/Dockerfile new file mode 100644 index 0000000000..682d8bd495 --- /dev/null +++ b/src/runtime-deps/11.0/alpine3.23/arm64v8/Dockerfile @@ -0,0 +1,29 @@ +FROM arm64v8/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + libgcc \ + libssl3 \ + libstdc++ + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/src/runtime-deps/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile b/src/runtime-deps/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile new file mode 100644 index 0000000000..b3aa352eba --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile @@ -0,0 +1,73 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + gawk \ + shadow-utils \ + && tdnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && tdnf install -y --releasever=3.0 --installroot /staging \ + prebuilt-ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && tdnf clean all --releasever=3.0 --installroot /staging + +# Generate RPM manifest file by appending to the original manifest file from base distroless image +COPY --from=mcr.microsoft.com/azurelinux/distroless/minimal:3.0 /var/lib/rpmmanifest/container-manifest-2 /tmp/rpmmanifest +RUN tmpManifestPath="/tmp/rpmmanifest" \ + && rpm --query --all --queryformat "%{NAME}\t%{VERSION}-%{RELEASE}\t%{INSTALLTIME}\t%{BUILDTIME}\t%{VENDOR}\t%{EPOCH}\t%{SIZE}\t%{ARCH}\t%{EPOCHNUM}\t%{SOURCERPM}\n" --root /staging | grep -v gpg-pubkey >> $tmpManifestPath \ + && mkdir --parents /staging/var/lib/rpmmanifest \ + # Remove duplicates that match on the first field (package name) + && tac $tmpManifestPath | gawk '!x[$1]++' | sort > /staging/var/lib/rpmmanifest/container-manifest-2 + +# Create a non-root user and group +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + --create-home \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/staging/home/app" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/staging/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/staging/etc/group" + +# Clean up staging +RUN rm -rf \ + /staging/etc/tdnf \ + /staging/run/* \ + /staging/var/cache/tdnf \ + /staging/var/lib/rpm \ + /staging/usr/share/doc \ + /staging/usr/share/man \ + && find /staging/var/log -type f -size +0 -delete + + +# .NET runtime-deps image +FROM mcr.microsoft.com/azurelinux/distroless/minimal:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +COPY --from=installer /staging/ / + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=installer --chown=1654:1654 /staging/home/app /home/app + +USER $APP_UID diff --git a/src/runtime-deps/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile b/src/runtime-deps/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..b3aa352eba --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile @@ -0,0 +1,73 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + gawk \ + shadow-utils \ + && tdnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && tdnf install -y --releasever=3.0 --installroot /staging \ + prebuilt-ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && tdnf clean all --releasever=3.0 --installroot /staging + +# Generate RPM manifest file by appending to the original manifest file from base distroless image +COPY --from=mcr.microsoft.com/azurelinux/distroless/minimal:3.0 /var/lib/rpmmanifest/container-manifest-2 /tmp/rpmmanifest +RUN tmpManifestPath="/tmp/rpmmanifest" \ + && rpm --query --all --queryformat "%{NAME}\t%{VERSION}-%{RELEASE}\t%{INSTALLTIME}\t%{BUILDTIME}\t%{VENDOR}\t%{EPOCH}\t%{SIZE}\t%{ARCH}\t%{EPOCHNUM}\t%{SOURCERPM}\n" --root /staging | grep -v gpg-pubkey >> $tmpManifestPath \ + && mkdir --parents /staging/var/lib/rpmmanifest \ + # Remove duplicates that match on the first field (package name) + && tac $tmpManifestPath | gawk '!x[$1]++' | sort > /staging/var/lib/rpmmanifest/container-manifest-2 + +# Create a non-root user and group +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + --create-home \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/staging/home/app" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/staging/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/staging/etc/group" + +# Clean up staging +RUN rm -rf \ + /staging/etc/tdnf \ + /staging/run/* \ + /staging/var/cache/tdnf \ + /staging/var/lib/rpm \ + /staging/usr/share/doc \ + /staging/usr/share/man \ + && find /staging/var/log -type f -size +0 -delete + + +# .NET runtime-deps image +FROM mcr.microsoft.com/azurelinux/distroless/minimal:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +COPY --from=installer /staging/ / + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=installer --chown=1654:1654 /staging/home/app /home/app + +USER $APP_UID diff --git a/src/runtime-deps/11.0/azurelinux3.0-distroless/amd64/Dockerfile b/src/runtime-deps/11.0/azurelinux3.0-distroless/amd64/Dockerfile new file mode 100644 index 0000000000..94daad8657 --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux3.0-distroless/amd64/Dockerfile @@ -0,0 +1,73 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + gawk \ + shadow-utils \ + && tdnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && tdnf install -y --releasever=3.0 --installroot /staging \ + prebuilt-ca-certificates \ + \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && tdnf clean all --releasever=3.0 --installroot /staging + +# Generate RPM manifest file by appending to the original manifest file from base distroless image +COPY --from=mcr.microsoft.com/azurelinux/distroless/minimal:3.0 /var/lib/rpmmanifest/container-manifest-2 /tmp/rpmmanifest +RUN tmpManifestPath="/tmp/rpmmanifest" \ + && rpm --query --all --queryformat "%{NAME}\t%{VERSION}-%{RELEASE}\t%{INSTALLTIME}\t%{BUILDTIME}\t%{VENDOR}\t%{EPOCH}\t%{SIZE}\t%{ARCH}\t%{EPOCHNUM}\t%{SOURCERPM}\n" --root /staging | grep -v gpg-pubkey >> $tmpManifestPath \ + && mkdir --parents /staging/var/lib/rpmmanifest \ + # Remove duplicates that match on the first field (package name) + && tac $tmpManifestPath | gawk '!x[$1]++' | sort > /staging/var/lib/rpmmanifest/container-manifest-2 + +# Create a non-root user and group +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + --create-home \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/staging/home/app" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/staging/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/staging/etc/group" + +# Clean up staging +RUN rm -rf \ + /staging/etc/tdnf \ + /staging/run/* \ + /staging/var/cache/tdnf \ + /staging/var/lib/rpm \ + /staging/usr/share/doc \ + /staging/usr/share/man \ + && find /staging/var/log -type f -size +0 -delete + + +# .NET runtime-deps image +FROM mcr.microsoft.com/azurelinux/distroless/minimal:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +COPY --from=installer /staging/ / + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=installer --chown=1654:1654 /staging/home/app /home/app + +USER $APP_UID diff --git a/src/runtime-deps/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile b/src/runtime-deps/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile new file mode 100644 index 0000000000..94daad8657 --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile @@ -0,0 +1,73 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + gawk \ + shadow-utils \ + && tdnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && tdnf install -y --releasever=3.0 --installroot /staging \ + prebuilt-ca-certificates \ + \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && tdnf clean all --releasever=3.0 --installroot /staging + +# Generate RPM manifest file by appending to the original manifest file from base distroless image +COPY --from=mcr.microsoft.com/azurelinux/distroless/minimal:3.0 /var/lib/rpmmanifest/container-manifest-2 /tmp/rpmmanifest +RUN tmpManifestPath="/tmp/rpmmanifest" \ + && rpm --query --all --queryformat "%{NAME}\t%{VERSION}-%{RELEASE}\t%{INSTALLTIME}\t%{BUILDTIME}\t%{VENDOR}\t%{EPOCH}\t%{SIZE}\t%{ARCH}\t%{EPOCHNUM}\t%{SOURCERPM}\n" --root /staging | grep -v gpg-pubkey >> $tmpManifestPath \ + && mkdir --parents /staging/var/lib/rpmmanifest \ + # Remove duplicates that match on the first field (package name) + && tac $tmpManifestPath | gawk '!x[$1]++' | sort > /staging/var/lib/rpmmanifest/container-manifest-2 + +# Create a non-root user and group +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + --create-home \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/staging/home/app" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/staging/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/staging/etc/group" + +# Clean up staging +RUN rm -rf \ + /staging/etc/tdnf \ + /staging/run/* \ + /staging/var/cache/tdnf \ + /staging/var/lib/rpm \ + /staging/usr/share/doc \ + /staging/usr/share/man \ + && find /staging/var/log -type f -size +0 -delete + + +# .NET runtime-deps image +FROM mcr.microsoft.com/azurelinux/distroless/minimal:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +COPY --from=installer /staging/ / + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=installer --chown=1654:1654 /staging/home/app /home/app + +USER $APP_UID diff --git a/src/runtime-deps/11.0/azurelinux3.0/amd64/Dockerfile b/src/runtime-deps/11.0/azurelinux3.0/amd64/Dockerfile new file mode 100644 index 0000000000..4adeda9e8f --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux3.0/amd64/Dockerfile @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux/base/core:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN tdnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && tdnf clean all + +# Create a non-root user and group +RUN tdnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && tdnf autoremove -y \ + shadow-utils \ + && tdnf clean all diff --git a/src/runtime-deps/11.0/azurelinux3.0/arm64v8/Dockerfile b/src/runtime-deps/11.0/azurelinux3.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..4adeda9e8f --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux3.0/arm64v8/Dockerfile @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux/base/core:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN tdnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && tdnf clean all + +# Create a non-root user and group +RUN tdnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && tdnf autoremove -y \ + shadow-utils \ + && tdnf clean all diff --git a/src/runtime-deps/11.0/resolute-chiseled-extra/amd64/Dockerfile b/src/runtime-deps/11.0/resolute-chiseled-extra/amd64/Dockerfile new file mode 100644 index 0000000000..b17a1d4d25 --- /dev/null +++ b/src/runtime-deps/11.0/resolute-chiseled-extra/amd64/Dockerfile @@ -0,0 +1,58 @@ +FROM amd64/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v1.3.0/chisel_v1.3.0_linux_amd64.tar.gz \ + && chisel_sha384='8a5a6831251828fcd9ce8c9a47fca941d8763b7c80c16da784e2b1bf830ba606ab848f3886ce5945a3c2fc5e719c77e9' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v1.2.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libicu76_libs \ + libssl3t64_libs \ + libstdc++6_libs \ + tzdata-legacy_zoneinfo \ + tzdata_zoneinfo + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/src/runtime-deps/11.0/resolute-chiseled-extra/arm32v7/Dockerfile b/src/runtime-deps/11.0/resolute-chiseled-extra/arm32v7/Dockerfile new file mode 100644 index 0000000000..0feaa21282 --- /dev/null +++ b/src/runtime-deps/11.0/resolute-chiseled-extra/arm32v7/Dockerfile @@ -0,0 +1,58 @@ +FROM arm32v7/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v1.3.0/chisel_v1.3.0_linux_arm.tar.gz \ + && chisel_sha384='fbfabeea4adabd7c3f7fc5b9bd09636200d68091ad3fa4cf901fd5567285b60fb0c8a4bc54e558bac3921ecf9679e7fb' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v1.2.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libicu76_libs \ + libssl3t64_libs \ + libstdc++6_libs \ + tzdata-legacy_zoneinfo \ + tzdata_zoneinfo + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/src/runtime-deps/11.0/resolute-chiseled-extra/arm64v8/Dockerfile b/src/runtime-deps/11.0/resolute-chiseled-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..8ee322b566 --- /dev/null +++ b/src/runtime-deps/11.0/resolute-chiseled-extra/arm64v8/Dockerfile @@ -0,0 +1,58 @@ +FROM arm64v8/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v1.3.0/chisel_v1.3.0_linux_arm64.tar.gz \ + && chisel_sha384='5e5ae3083ecb59c314fbee290263ccc7417016798943fb533f01737918d38c35d21d683c5fe89e6fd3488af90ec7c83b' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v1.2.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libicu76_libs \ + libssl3t64_libs \ + libstdc++6_libs \ + tzdata-legacy_zoneinfo \ + tzdata_zoneinfo + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/src/runtime-deps/11.0/resolute-chiseled/amd64/Dockerfile b/src/runtime-deps/11.0/resolute-chiseled/amd64/Dockerfile new file mode 100644 index 0000000000..7a8ed94923 --- /dev/null +++ b/src/runtime-deps/11.0/resolute-chiseled/amd64/Dockerfile @@ -0,0 +1,57 @@ +FROM amd64/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v1.3.0/chisel_v1.3.0_linux_amd64.tar.gz \ + && chisel_sha384='8a5a6831251828fcd9ce8c9a47fca941d8763b7c80c16da784e2b1bf830ba606ab848f3886ce5945a3c2fc5e719c77e9' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v1.2.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libssl3t64_libs \ + libstdc++6_libs + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/src/runtime-deps/11.0/resolute-chiseled/arm32v7/Dockerfile b/src/runtime-deps/11.0/resolute-chiseled/arm32v7/Dockerfile new file mode 100644 index 0000000000..fe1a5034ad --- /dev/null +++ b/src/runtime-deps/11.0/resolute-chiseled/arm32v7/Dockerfile @@ -0,0 +1,57 @@ +FROM arm32v7/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v1.3.0/chisel_v1.3.0_linux_arm.tar.gz \ + && chisel_sha384='fbfabeea4adabd7c3f7fc5b9bd09636200d68091ad3fa4cf901fd5567285b60fb0c8a4bc54e558bac3921ecf9679e7fb' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v1.2.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libssl3t64_libs \ + libstdc++6_libs + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/src/runtime-deps/11.0/resolute-chiseled/arm64v8/Dockerfile b/src/runtime-deps/11.0/resolute-chiseled/arm64v8/Dockerfile new file mode 100644 index 0000000000..dc37fc9eda --- /dev/null +++ b/src/runtime-deps/11.0/resolute-chiseled/arm64v8/Dockerfile @@ -0,0 +1,57 @@ +FROM arm64v8/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v1.3.0/chisel_v1.3.0_linux_arm64.tar.gz \ + && chisel_sha384='5e5ae3083ecb59c314fbee290263ccc7417016798943fb533f01737918d38c35d21d683c5fe89e6fd3488af90ec7c83b' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v1.2.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libssl3t64_libs \ + libstdc++6_libs + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/src/runtime-deps/11.0/resolute/amd64/Dockerfile b/src/runtime-deps/11.0/resolute/amd64/Dockerfile new file mode 100644 index 0000000000..79b4af5af5 --- /dev/null +++ b/src/runtime-deps/11.0/resolute/amd64/Dockerfile @@ -0,0 +1,32 @@ +FROM ubuntu.azurecr.io/ubuntu:resolute + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + \ + # .NET dependencies + libc6 \ + libgcc-s1 \ + libicu76 \ + libssl3t64 \ + libstdc++6 \ + tzdata \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user and group +RUN groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app diff --git a/src/runtime-deps/11.0/resolute/arm32v7/Dockerfile b/src/runtime-deps/11.0/resolute/arm32v7/Dockerfile new file mode 100644 index 0000000000..79b4af5af5 --- /dev/null +++ b/src/runtime-deps/11.0/resolute/arm32v7/Dockerfile @@ -0,0 +1,32 @@ +FROM ubuntu.azurecr.io/ubuntu:resolute + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + \ + # .NET dependencies + libc6 \ + libgcc-s1 \ + libicu76 \ + libssl3t64 \ + libstdc++6 \ + tzdata \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user and group +RUN groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app diff --git a/src/runtime-deps/11.0/resolute/arm64v8/Dockerfile b/src/runtime-deps/11.0/resolute/arm64v8/Dockerfile new file mode 100644 index 0000000000..79b4af5af5 --- /dev/null +++ b/src/runtime-deps/11.0/resolute/arm64v8/Dockerfile @@ -0,0 +1,32 @@ +FROM ubuntu.azurecr.io/ubuntu:resolute + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + \ + # .NET dependencies + libc6 \ + libgcc-s1 \ + libicu76 \ + libssl3t64 \ + libstdc++6 \ + tzdata \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user and group +RUN groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app diff --git a/src/runtime/11.0/alpine3.23/amd64/Dockerfile b/src/runtime/11.0/alpine3.23/amd64/Dockerfile new file mode 100644 index 0000000000..12d51fb155 --- /dev/null +++ b/src/runtime/11.0/alpine3.23/amd64/Dockerfile @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-amd64 AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz \ + https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-alpine3.23-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/11.0/alpine3.23/arm32v7/Dockerfile b/src/runtime/11.0/alpine3.23/arm32v7/Dockerfile new file mode 100644 index 0000000000..63021e1d59 --- /dev/null +++ b/src/runtime/11.0/alpine3.23/arm32v7/Dockerfile @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm32v7 AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz \ + https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz \ + dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm32v7 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/11.0/alpine3.23/arm64v8/Dockerfile b/src/runtime/11.0/alpine3.23/arm64v8/Dockerfile new file mode 100644 index 0000000000..9e670d3690 --- /dev/null +++ b/src/runtime/11.0/alpine3.23/arm64v8/Dockerfile @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm64v8 AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz \ + https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile b/src/runtime/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile new file mode 100644 index 0000000000..a5d9b5785e --- /dev/null +++ b/src/runtime/11.0/azurelinux3.0-distroless-extra/amd64/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-extra-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/runtime/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile b/src/runtime/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..f93a4c0736 --- /dev/null +++ b/src/runtime/11.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-extra-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/runtime/11.0/azurelinux3.0-distroless/amd64/Dockerfile b/src/runtime/11.0/azurelinux3.0-distroless/amd64/Dockerfile new file mode 100644 index 0000000000..f362be4659 --- /dev/null +++ b/src/runtime/11.0/azurelinux3.0-distroless/amd64/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/runtime/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile b/src/runtime/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile new file mode 100644 index 0000000000..a84d724778 --- /dev/null +++ b/src/runtime/11.0/azurelinux3.0-distroless/arm64v8/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-distroless-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/runtime/11.0/azurelinux3.0/amd64/Dockerfile b/src/runtime/11.0/azurelinux3.0/amd64/Dockerfile new file mode 100644 index 0000000000..0b49635e71 --- /dev/null +++ b/src/runtime/11.0/azurelinux3.0/amd64/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-amd64 AS installer + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/11.0/azurelinux3.0/arm64v8/Dockerfile b/src/runtime/11.0/azurelinux3.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..c1ac38986e --- /dev/null +++ b/src/runtime/11.0/azurelinux3.0/arm64v8/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-arm64v8 AS installer + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/11.0/nanoserver-ltsc2025/amd64/Dockerfile b/src/runtime/11.0/nanoserver-ltsc2025/amd64/Dockerfile new file mode 100644 index 0000000000..646f89d8be --- /dev/null +++ b/src/runtime/11.0/nanoserver-ltsc2025/amd64/Dockerfile @@ -0,0 +1,46 @@ +# escape=` + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +# Retrieve .NET Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $dotnet_version = '11.0.0-alpha.1.25609.108'; ` + $dotnet_file = 'dotnet-runtime-' + $dotnet_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + Invoke-WebRequest -OutFile $dotnet_file https://ci.dot.net/public/Runtime/$dotnet_version/$dotnet_file; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://ci.dot.net/public-checksums/Runtime/$dotnet_version/$dotnet_sha512_file; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file + + +# Runtime image +FROM mcr.microsoft.com/windows/nanoserver:ltsc2025-amd64 + +ENV ` + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 ` + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true ` + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +# In order to set system PATH, ContainerAdministrator must be used +USER ContainerAdministrator +RUN setx /M PATH "%PATH%;C:\Program Files\dotnet" +USER ContainerUser + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] diff --git a/src/runtime/11.0/resolute-chiseled-extra/amd64/Dockerfile b/src/runtime/11.0/resolute-chiseled-extra/amd64/Dockerfile new file mode 100644 index 0000000000..5104e89c24 --- /dev/null +++ b/src/runtime/11.0/resolute-chiseled-extra/amd64/Dockerfile @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-extra-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/runtime/11.0/resolute-chiseled-extra/arm32v7/Dockerfile b/src/runtime/11.0/resolute-chiseled-extra/arm32v7/Dockerfile new file mode 100644 index 0000000000..0cec2657d8 --- /dev/null +++ b/src/runtime/11.0/resolute-chiseled-extra/arm32v7/Dockerfile @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-extra-arm32v7 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/runtime/11.0/resolute-chiseled-extra/arm64v8/Dockerfile b/src/runtime/11.0/resolute-chiseled-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..9f482ad2b0 --- /dev/null +++ b/src/runtime/11.0/resolute-chiseled-extra/arm64v8/Dockerfile @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-extra-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/runtime/11.0/resolute-chiseled/amd64/Dockerfile b/src/runtime/11.0/resolute-chiseled/amd64/Dockerfile new file mode 100644 index 0000000000..f765e06ac8 --- /dev/null +++ b/src/runtime/11.0/resolute-chiseled/amd64/Dockerfile @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/runtime/11.0/resolute-chiseled/arm32v7/Dockerfile b/src/runtime/11.0/resolute-chiseled/arm32v7/Dockerfile new file mode 100644 index 0000000000..4928c66e90 --- /dev/null +++ b/src/runtime/11.0/resolute-chiseled/arm32v7/Dockerfile @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-arm32v7 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/runtime/11.0/resolute-chiseled/arm64v8/Dockerfile b/src/runtime/11.0/resolute-chiseled/arm64v8/Dockerfile new file mode 100644 index 0000000000..3c3a0fd176 --- /dev/null +++ b/src/runtime/11.0/resolute-chiseled/arm64v8/Dockerfile @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-resolute-chiseled-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/src/runtime/11.0/resolute/amd64/Dockerfile b/src/runtime/11.0/resolute/amd64/Dockerfile new file mode 100644 index 0000000000..61c0810152 --- /dev/null +++ b/src/runtime/11.0/resolute/amd64/Dockerfile @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-resolute-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/11.0/resolute/arm32v7/Dockerfile b/src/runtime/11.0/resolute/arm32v7/Dockerfile new file mode 100644 index 0000000000..f242be19bd --- /dev/null +++ b/src/runtime/11.0/resolute/arm32v7/Dockerfile @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-resolute-arm32v7 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/11.0/resolute/arm64v8/Dockerfile b/src/runtime/11.0/resolute/arm64v8/Dockerfile new file mode 100644 index 0000000000..854b38b0bd --- /dev/null +++ b/src/runtime/11.0/resolute/arm64v8/Dockerfile @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:11.0.0-alpha.1-resolute-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/11.0/windowsservercore-ltsc2025/amd64/Dockerfile b/src/runtime/11.0/windowsservercore-ltsc2025/amd64/Dockerfile new file mode 100644 index 0000000000..ff84502f78 --- /dev/null +++ b/src/runtime/11.0/windowsservercore-ltsc2025/amd64/Dockerfile @@ -0,0 +1,43 @@ +# escape=` + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +# Retrieve .NET Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $dotnet_version = '11.0.0-alpha.1.25609.108'; ` + $dotnet_file = 'dotnet-runtime-' + $dotnet_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + Invoke-WebRequest -OutFile $dotnet_file https://ci.dot.net/public/Runtime/$dotnet_version/$dotnet_file; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://ci.dot.net/public-checksums/Runtime/$dotnet_version/$dotnet_sha512_file; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file + + +# Runtime image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 + +ENV ` + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 ` + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true ` + # .NET Runtime version + DOTNET_VERSION=11.0.0-alpha.1.25609.108 + +RUN setx /M PATH "%PATH%;C:\Program Files\dotnet" + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] diff --git a/src/sdk/11.0/alpine3.23-aot/amd64/Dockerfile b/src/sdk/11.0/alpine3.23-aot/amd64/Dockerfile new file mode 100644 index 0000000000..30577464f7 --- /dev/null +++ b/src/sdk/11.0/alpine3.23-aot/amd64/Dockerfile @@ -0,0 +1,8 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:11.0.100-alpha.1-alpine3.23-amd64 + +RUN apk add --upgrade --no-cache \ + build-base \ + clang \ + zlib-dev diff --git a/src/sdk/11.0/alpine3.23-aot/arm64v8/Dockerfile b/src/sdk/11.0/alpine3.23-aot/arm64v8/Dockerfile new file mode 100644 index 0000000000..7685998c3a --- /dev/null +++ b/src/sdk/11.0/alpine3.23-aot/arm64v8/Dockerfile @@ -0,0 +1,8 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:11.0.100-alpha.1-alpine3.23-arm64v8 + +RUN apk add --upgrade --no-cache \ + build-base \ + clang \ + zlib-dev diff --git a/src/sdk/11.0/alpine3.23/amd64/Dockerfile b/src/sdk/11.0/alpine3.23/amd64/Dockerfile new file mode 100644 index 0000000000..879446740d --- /dev/null +++ b/src/sdk/11.0/alpine3.23/amd64/Dockerfile @@ -0,0 +1,67 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-amd64 AS installer + +# Install .NET SDK +RUN dotnet_sdk_version=11.0.100-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz \ + https://ci.dot.net/public-checksums/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:11.0.0-alpha.1-alpine3.23-amd64 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=11.0.100-alpha.1.25609.108 \ + # Disable the invariant mode (set in base image) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Alpine-3.23 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN apk add --upgrade --no-cache \ + curl \ + git \ + icu-data-full \ + icu-libs \ + libatomic \ + tzdata + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=7.6.0-preview.4 \ + && wget --output-document PowerShell.Linux.Alpine.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.Alpine.$powershell_version.nupkg \ + && powershell_sha512='d0b0e5822a49371f632605a087aed11e71943899c7e910ba510dd848270e56b449b02d425f23333139054ae37f298241c071ca15a77c945af7d4d39c15ac74a6' \ + && echo "$powershell_sha512 PowerShell.Linux.Alpine.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.Alpine \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.Alpine.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm \ + # Add ncurses-terminfo-base to resolve psreadline dependency + && apk add --no-cache ncurses-terminfo-base diff --git a/src/sdk/11.0/alpine3.23/arm32v7/Dockerfile b/src/sdk/11.0/alpine3.23/arm32v7/Dockerfile new file mode 100644 index 0000000000..f94a0aa64c --- /dev/null +++ b/src/sdk/11.0/alpine3.23/arm32v7/Dockerfile @@ -0,0 +1,47 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm32v7 AS installer + +# Install .NET SDK +RUN dotnet_sdk_version=11.0.100-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz \ + https://ci.dot.net/public-checksums/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm32v7 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=11.0.100-alpha.1.25609.108 \ + # Disable the invariant mode (set in base image) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip + +RUN apk add --upgrade --no-cache \ + curl \ + git \ + icu-data-full \ + icu-libs \ + libatomic \ + tzdata + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help diff --git a/src/sdk/11.0/alpine3.23/arm64v8/Dockerfile b/src/sdk/11.0/alpine3.23/arm64v8/Dockerfile new file mode 100644 index 0000000000..9969eb6032 --- /dev/null +++ b/src/sdk/11.0/alpine3.23/arm64v8/Dockerfile @@ -0,0 +1,47 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm64v8 AS installer + +# Install .NET SDK +RUN dotnet_sdk_version=11.0.100-alpha.1.25609.108 \ + && wget \ + https://ci.dot.net/public/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz \ + https://ci.dot.net/public-checksums/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:11.0.0-alpha.1-alpine3.23-arm64v8 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=11.0.100-alpha.1.25609.108 \ + # Disable the invariant mode (set in base image) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip + +RUN apk add --upgrade --no-cache \ + curl \ + git \ + icu-data-full \ + icu-libs \ + libatomic \ + tzdata + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help diff --git a/src/sdk/11.0/azurelinux3.0-aot/amd64/Dockerfile b/src/sdk/11.0/azurelinux3.0-aot/amd64/Dockerfile new file mode 100644 index 0000000000..5e24a3f70f --- /dev/null +++ b/src/sdk/11.0/azurelinux3.0-aot/amd64/Dockerfile @@ -0,0 +1,9 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:11.0.100-alpha.1-azurelinux3.0-amd64 + +RUN tdnf install -y \ + build-essential \ + clang \ + zlib-devel \ + && tdnf clean all diff --git a/src/sdk/11.0/azurelinux3.0-aot/arm64v8/Dockerfile b/src/sdk/11.0/azurelinux3.0-aot/arm64v8/Dockerfile new file mode 100644 index 0000000000..fff607674e --- /dev/null +++ b/src/sdk/11.0/azurelinux3.0-aot/arm64v8/Dockerfile @@ -0,0 +1,9 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:11.0.100-alpha.1-azurelinux3.0-arm64v8 + +RUN tdnf install -y \ + build-essential \ + clang \ + zlib-devel \ + && tdnf clean all diff --git a/src/sdk/11.0/azurelinux3.0/amd64/Dockerfile b/src/sdk/11.0/azurelinux3.0/amd64/Dockerfile new file mode 100644 index 0000000000..2ed11dc51e --- /dev/null +++ b/src/sdk/11.0/azurelinux3.0/amd64/Dockerfile @@ -0,0 +1,65 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-amd64 AS installer + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Install .NET SDK +RUN dotnet_sdk_version=11.0.100-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-amd64 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=11.0.100-alpha.1.25609.108 \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Azure-Linux-3.0 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN tdnf install -y \ + git \ + libgcc-atomic \ + tar \ + && tdnf clean all + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=7.6.0-preview.4 \ + && curl --fail --show-error --location --output PowerShell.Linux.x64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.x64.$powershell_version.nupkg \ + && powershell_sha512='92ba2a8344f13d1c640f73d61488a582bae3ea82e4d00aad02efece3475f852855fb6f8ac37f72b4a14cdc1975af9f253d59ce72e36f3653e6b1ee87dc273f8f' \ + && echo "$powershell_sha512 PowerShell.Linux.x64.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.x64 \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.x64.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm diff --git a/src/sdk/11.0/azurelinux3.0/arm64v8/Dockerfile b/src/sdk/11.0/azurelinux3.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..1b51bee99d --- /dev/null +++ b/src/sdk/11.0/azurelinux3.0/arm64v8/Dockerfile @@ -0,0 +1,65 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-arm64v8 AS installer + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Install .NET SDK +RUN dotnet_sdk_version=11.0.100-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:11.0.0-alpha.1-azurelinux3.0-arm64v8 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=11.0.100-alpha.1.25609.108 \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Azure-Linux-3.0-arm64 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN tdnf install -y \ + git \ + libgcc-atomic \ + tar \ + && tdnf clean all + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=7.6.0-preview.4 \ + && curl --fail --show-error --location --output PowerShell.Linux.arm64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.arm64.$powershell_version.nupkg \ + && powershell_sha512='265519a89209f8c0c6c736f3a0d92d97468ee5ddfc245c9ed24ec8ebe13826f15b6d3a879ce6e4274c17091d38811c91b2e5acf8ec4d2202d9b0d1176a28c710' \ + && echo "$powershell_sha512 PowerShell.Linux.arm64.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.arm64 \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.arm64.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm diff --git a/src/sdk/11.0/nanoserver-ltsc2025/amd64/Dockerfile b/src/sdk/11.0/nanoserver-ltsc2025/amd64/Dockerfile new file mode 100644 index 0000000000..edf235f505 --- /dev/null +++ b/src/sdk/11.0/nanoserver-ltsc2025/amd64/Dockerfile @@ -0,0 +1,95 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/aspnet + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +# Download MinGit +RUN powershell -Command " ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + Invoke-WebRequest -OutFile mingit.zip https://github.com/git-for-windows/git/releases/download/v2.52.0.windows.1/MinGit-2.52.0-64-bit.zip; ` + $mingit_sha256 = 'f42a561840627747ad48e6ece05a14093292d31f3393a401a7f7c780ee7695c2'; ` + if ((Get-FileHash mingit.zip -Algorithm sha256).Hash -ne $mingit_sha256) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + mkdir MinGit; ` + tar --gzip --extract --no-same-owner --file mingit.zip --directory MinGit; ` + Remove-Item -Force mingit.zip" + +RUN powershell -Command " ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + # Retrieve .NET SDK + $dotnet_sdk_version = '11.0.100-alpha.1.25609.108'; ` + $dotnet_file = 'dotnet-sdk-' + $dotnet_sdk_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + Invoke-WebRequest -OutFile $dotnet_file https://ci.dot.net/public/Sdk/$dotnet_sdk_version/$dotnet_file; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://ci.dot.net/public-checksums/Sdk/$dotnet_sdk_version/$dotnet_sha512_file; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file; ` + ` + # Install PowerShell global tool + $powershell_version = '7.6.0-preview.4'; ` + Invoke-WebRequest -OutFile PowerShell.Windows.x64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Windows.x64.$powershell_version.nupkg; ` + $powershell_sha512 = 'a529408a93ca2be753d84137bff8ed95dc9301faf2da62fbd9d7bfb29fe502bfca9427736b1004884e839e3f2585ac613349f0fbbb97ea6f979b115dcf06aa0c'; ` + if ((Get-FileHash PowerShell.Windows.x64.$powershell_version.nupkg -Algorithm sha512).Hash -ne $powershell_sha512) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + & \dotnet\dotnet tool install --add-source . --tool-path \powershell --version $powershell_version PowerShell.Windows.x64; ` + & \dotnet\dotnet nuget locals all --clear; ` + Remove-Item -Force PowerShell.Windows.x64.$powershell_version.nupkg; ` + Remove-Item -Path \powershell\.store\powershell.windows.x64\$powershell_version\powershell.windows.x64\$powershell_version\powershell.windows.x64.$powershell_version.nupkg -Force; ` + ` + # Delete everything in the dotnet folder that's not needed in the SDK layer but will instead be derived from base layers + Get-ChildItem -Exclude 'dnx.cmd','dnx.ps1','LICENSE.txt','ThirdPartyNotices.txt','packs','sdk','sdk-manifests','templates','shared' -Path dotnet ` + | Remove-Item -Force -Recurse; ` + Get-ChildItem -Exclude 'Microsoft.WindowsDesktop.App' -Path dotnet\shared ` + | Remove-Item -Force -Recurse" + + +# SDK image +FROM $REPO:11.0.0-alpha.1-nanoserver-ltsc2025 + +ENV ` + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false ` + # Do not show first run text + DOTNET_NOLOGO=true ` + # SDK version + DOTNET_SDK_VERSION=11.0.100-alpha.1.25609.108 ` + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true ` + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip ` + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-NanoServer-ltsc2025 ` + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +# In order to set system PATH, ContainerAdministrator must be used +USER ContainerAdministrator +RUN setx /M PATH "%PATH%;C:\Program Files\powershell;C:\Program Files\MinGit\cmd" +USER ContainerUser + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] +COPY --from=installer ["/powershell", "/Program Files/powershell"] +COPY --from=installer ["/MinGit", "/Program Files/MinGit"] + +# Trigger first run experience by running arbitrary cmd +RUN dotnet help diff --git a/src/sdk/11.0/resolute-aot/amd64/Dockerfile b/src/sdk/11.0/resolute-aot/amd64/Dockerfile new file mode 100644 index 0000000000..492515f691 --- /dev/null +++ b/src/sdk/11.0/resolute-aot/amd64/Dockerfile @@ -0,0 +1,10 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:11.0.100-alpha.1-resolute-amd64 + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + clang \ + llvm \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* diff --git a/src/sdk/11.0/resolute-aot/arm64v8/Dockerfile b/src/sdk/11.0/resolute-aot/arm64v8/Dockerfile new file mode 100644 index 0000000000..81dd5a9b67 --- /dev/null +++ b/src/sdk/11.0/resolute-aot/arm64v8/Dockerfile @@ -0,0 +1,10 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:11.0.100-alpha.1-resolute-arm64v8 + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + clang \ + llvm \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* diff --git a/src/sdk/11.0/resolute/amd64/Dockerfile b/src/sdk/11.0/resolute/amd64/Dockerfile new file mode 100644 index 0000000000..53a7a02c40 --- /dev/null +++ b/src/sdk/11.0/resolute/amd64/Dockerfile @@ -0,0 +1,63 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +# Install .NET SDK +RUN dotnet_sdk_version=11.0.100-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:11.0.0-alpha.1-resolute-amd64 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=11.0.100-alpha.1.25609.108 \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-26.04 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + curl \ + git \ + libatomic1 \ + wget \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=7.6.0-preview.4 \ + && curl --fail --show-error --location --output PowerShell.Linux.x64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.x64.$powershell_version.nupkg \ + && powershell_sha512='92ba2a8344f13d1c640f73d61488a582bae3ea82e4d00aad02efece3475f852855fb6f8ac37f72b4a14cdc1975af9f253d59ce72e36f3653e6b1ee87dc273f8f' \ + && echo "$powershell_sha512 PowerShell.Linux.x64.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.x64 \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.x64.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm diff --git a/src/sdk/11.0/resolute/arm32v7/Dockerfile b/src/sdk/11.0/resolute/arm32v7/Dockerfile new file mode 100644 index 0000000000..7c0ce89006 --- /dev/null +++ b/src/sdk/11.0/resolute/arm32v7/Dockerfile @@ -0,0 +1,63 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +# Install .NET SDK +RUN dotnet_sdk_version=11.0.100-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:11.0.0-alpha.1-resolute-arm32v7 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=11.0.100-alpha.1.25609.108 \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-26.04-arm32 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + curl \ + git \ + libatomic1 \ + wget \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=7.6.0-preview.4 \ + && curl --fail --show-error --location --output PowerShell.Linux.arm32.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.arm32.$powershell_version.nupkg \ + && powershell_sha512='32e410abb44dcd6ba943fa8c7367a88a6c0c4e3ac0a67756fb5919139c980f1a3d66a3b055e6b2292a154c9eede22003b0b85605c101e3e6fa89fd71b7d44a7f' \ + && echo "$powershell_sha512 PowerShell.Linux.arm32.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.arm32 \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.arm32.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm diff --git a/src/sdk/11.0/resolute/arm64v8/Dockerfile b/src/sdk/11.0/resolute/arm64v8/Dockerfile new file mode 100644 index 0000000000..fab704088a --- /dev/null +++ b/src/sdk/11.0/resolute/arm64v8/Dockerfile @@ -0,0 +1,63 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +# Install .NET SDK +RUN dotnet_sdk_version=11.0.100-alpha.1.25609.108 \ + && curl --fail --show-error --location \ + --remote-name https://ci.dot.net/public/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz \ + --remote-name https://ci.dot.net/public-checksums/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:11.0.0-alpha.1-resolute-arm64v8 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=11.0.100-alpha.1.25609.108 \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-26.04-arm64 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + curl \ + git \ + libatomic1 \ + wget \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=7.6.0-preview.4 \ + && curl --fail --show-error --location --output PowerShell.Linux.arm64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.arm64.$powershell_version.nupkg \ + && powershell_sha512='265519a89209f8c0c6c736f3a0d92d97468ee5ddfc245c9ed24ec8ebe13826f15b6d3a879ce6e4274c17091d38811c91b2e5acf8ec4d2202d9b0d1176a28c710' \ + && echo "$powershell_sha512 PowerShell.Linux.arm64.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.arm64 \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.arm64.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm diff --git a/src/sdk/11.0/windowsservercore-ltsc2025/amd64/Dockerfile b/src/sdk/11.0/windowsservercore-ltsc2025/amd64/Dockerfile new file mode 100644 index 0000000000..8ab9f0c4d2 --- /dev/null +++ b/src/sdk/11.0/windowsservercore-ltsc2025/amd64/Dockerfile @@ -0,0 +1,92 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/aspnet + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +# Download MinGit +RUN powershell -Command " ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + Invoke-WebRequest -OutFile mingit.zip https://github.com/git-for-windows/git/releases/download/v2.52.0.windows.1/MinGit-2.52.0-64-bit.zip; ` + $mingit_sha256 = 'f42a561840627747ad48e6ece05a14093292d31f3393a401a7f7c780ee7695c2'; ` + if ((Get-FileHash mingit.zip -Algorithm sha256).Hash -ne $mingit_sha256) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + mkdir MinGit; ` + tar --gzip --extract --no-same-owner --file mingit.zip --directory MinGit; ` + Remove-Item -Force mingit.zip" + +RUN powershell -Command " ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + # Retrieve .NET SDK + $dotnet_sdk_version = '11.0.100-alpha.1.25609.108'; ` + $dotnet_file = 'dotnet-sdk-' + $dotnet_sdk_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + Invoke-WebRequest -OutFile $dotnet_file https://ci.dot.net/public/Sdk/$dotnet_sdk_version/$dotnet_file; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://ci.dot.net/public-checksums/Sdk/$dotnet_sdk_version/$dotnet_sha512_file; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file; ` + ` + # Install PowerShell global tool + $powershell_version = '7.6.0-preview.4'; ` + Invoke-WebRequest -OutFile PowerShell.Windows.x64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Windows.x64.$powershell_version.nupkg; ` + $powershell_sha512 = 'a529408a93ca2be753d84137bff8ed95dc9301faf2da62fbd9d7bfb29fe502bfca9427736b1004884e839e3f2585ac613349f0fbbb97ea6f979b115dcf06aa0c'; ` + if ((Get-FileHash PowerShell.Windows.x64.$powershell_version.nupkg -Algorithm sha512).Hash -ne $powershell_sha512) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + & \dotnet\dotnet tool install --add-source . --tool-path \powershell --version $powershell_version PowerShell.Windows.x64; ` + & \dotnet\dotnet nuget locals all --clear; ` + Remove-Item -Force PowerShell.Windows.x64.$powershell_version.nupkg; ` + Remove-Item -Path \powershell\.store\powershell.windows.x64\$powershell_version\powershell.windows.x64\$powershell_version\powershell.windows.x64.$powershell_version.nupkg -Force; ` + ` + # Delete everything in the dotnet folder that's not needed in the SDK layer but will instead be derived from base layers + Get-ChildItem -Exclude 'dnx.cmd','dnx.ps1','LICENSE.txt','ThirdPartyNotices.txt','packs','sdk','sdk-manifests','templates','shared' -Path dotnet ` + | Remove-Item -Force -Recurse; ` + Get-ChildItem -Exclude 'Microsoft.WindowsDesktop.App' -Path dotnet\shared ` + | Remove-Item -Force -Recurse" + + +# SDK image +FROM $REPO:11.0.0-alpha.1-windowsservercore-ltsc2025 + +ENV ` + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false ` + # Do not show first run text + DOTNET_NOLOGO=true ` + # SDK version + DOTNET_SDK_VERSION=11.0.100-alpha.1.25609.108 ` + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true ` + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip ` + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-WindowsServerCore-ltsc2025 ` + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN setx /M PATH "%PATH%;C:\Program Files\powershell;C:\Program Files\MinGit\cmd" + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] +COPY --from=installer ["/powershell", "/Program Files/powershell"] +COPY --from=installer ["/MinGit", "/Program Files/MinGit"] + +# Trigger first run experience by running arbitrary cmd +RUN dotnet help diff --git a/tests/Microsoft.DotNet.Docker.Tests/AspnetImageTests.cs b/tests/Microsoft.DotNet.Docker.Tests/AspnetImageTests.cs index 48e6a0e147..2db43d9996 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/AspnetImageTests.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/AspnetImageTests.cs @@ -32,7 +32,7 @@ public async Task VerifyFxDependentAppScenario(ProductImageData imageData) return; } - using WebScenario scenario = new WebScenario.FxDependent(imageData, DockerHelper, OutputHelper); + WebScenario scenario = new WebScenario.FxDependent(imageData, DockerHelper, OutputHelper); await scenario.ExecuteAsync(); } diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..9068f85424 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-amd64-Dockerfile.approved.txt @@ -0,0 +1,28 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-amd64 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-alpine3.XX-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..65f34758e6 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,28 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..86cadbe030 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,28 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-composite-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-composite-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..1b4ba481c4 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-composite-amd64-Dockerfile.approved.txt @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-amd64 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz --directory /dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-alpine3.XX-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-composite-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-composite-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..46a8ba7239 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-composite-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz --directory /dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-composite-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-composite-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..1f4f83d7f5 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.22-composite-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz --directory /dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..57cc13e47c --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-amd64-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-amd64 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-alpine3.XX-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..fecc264cad --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..8b582b3053 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-composite-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-composite-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..934bed0d0b --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-composite-amd64-Dockerfile.approved.txt @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-amd64 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz --directory /dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-x64.tar.gz.sha512 + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-alpine3.XX-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-composite-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-composite-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..d4f7e29776 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-composite-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz --directory /dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm.tar.gz.sha512 + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-composite-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-composite-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..971ff2df28 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-alpine3.23-composite-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz \ + https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz --directory /dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-musl-arm64.tar.gz.sha512 + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..d5dfad3088 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-azurelinux3.0-amd64 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux3.0-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..c44ba14e88 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-azurelinux3.0-arm64v8 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux3.0-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..7903185595 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-amd64-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux3.0-distroless-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..5bf3e8670b --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux3.0-distroless-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..a1242a0b86 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-amd64-Dockerfile.approved.txt @@ -0,0 +1,43 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-azurelinux3.0-distroless-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..a2b9dca9fa --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,43 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-azurelinux3.0-distroless-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..8342b60432 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,43 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-azurelinux3.0-distroless-extra-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..c3128df0d3 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-composite-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,43 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-azurelinux3.0-distroless-extra-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..9e473c85ca --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux3.0-distroless-extra-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..55647a6beb --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux3.0-distroless-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux3.0-distroless-extra-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-nanoserver-ltsc2022-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-nanoserver-ltsc2022-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..d333d34fc7 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-nanoserver-ltsc2022-amd64-Dockerfile.approved.txt @@ -0,0 +1,45 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2022-amd64 AS installer + +ARG ACCESSTOKEN + +# Install ASP.NET Core Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $aspnetcore_version = '0.0.0'; ` + $aspnetcore_build_version = $aspnetcore_version + '.25609.108'; ` + $aspnetcore_file = 'aspnetcore-runtime-' + $aspnetcore_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $aspnetcore_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $aspnetcore_file https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/$aspnetcore_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $aspnetcore_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $aspnetcore_file --directory dotnet ./shared/Microsoft.AspNetCore.App; ` + Remove-Item -Force ` + $aspnetcore_file, ` + $dotnet_sha512_file + + +# ASP.NET Core image +FROM $REPO:0.0.0-nanoserver-ltsc2022 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet/shared/Microsoft.AspNetCore.App", "/Program Files/dotnet/shared/Microsoft.AspNetCore.App"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-nanoserver-ltsc2025-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-nanoserver-ltsc2025-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..c2cb3ef7d3 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-nanoserver-ltsc2025-amd64-Dockerfile.approved.txt @@ -0,0 +1,44 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +ARG ACCESSTOKEN + +# Install ASP.NET Core Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $aspnetcore_version = '0.0.0'; ` + $aspnetcore_file = 'aspnetcore-runtime-' + $aspnetcore_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $aspnetcore_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $aspnetcore_file https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/$aspnetcore_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $aspnetcore_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $aspnetcore_file --directory dotnet ./shared/Microsoft.AspNetCore.App; ` + Remove-Item -Force ` + $aspnetcore_file, ` + $dotnet_sha512_file + + +# ASP.NET Core image +FROM $REPO:0.0.0-nanoserver-ltsc2025 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet/shared/Microsoft.AspNetCore.App", "/Program Files/dotnet/shared/Microsoft.AspNetCore.App"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..95e1542ef7 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-amd64-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-resolute-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..a75379b439 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-resolute-arm32v7 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..db97c2c6a5 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-resolute-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..0bc5f6e7c7 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-amd64-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-resolute-chiseled-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..86e1657c7d --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-resolute-chiseled-arm32v7 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..11258b5de3 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-resolute-chiseled-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..5b87c84de1 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-amd64-Dockerfile.approved.txt @@ -0,0 +1,37 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-resolute-chiseled-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..1a55510718 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,37 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-resolute-chiseled-arm32v7 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..6175f132a6 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,37 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-resolute-chiseled-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..e9caafdf3d --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,37 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-resolute-chiseled-extra-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-extra-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-extra-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..676ef3279d --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-extra-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,37 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-resolute-chiseled-extra-arm32v7 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..be8f037fff --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-composite-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,37 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# ASP.NET Composite Image +FROM $REPO:0.0.0-resolute-chiseled-extra-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=0.0.0 \ + # ASP.NET Core version + ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..f83ae763fc --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-resolute-chiseled-extra-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-extra-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-extra-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..8d1eaf3861 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-extra-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-resolute-chiseled-extra-arm32v7 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..b5807fce68 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-resolute-chiseled-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,27 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-resolute-chiseled-extra-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-windowsservercore-ltsc2022-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-windowsservercore-ltsc2022-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..108abd23b5 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-windowsservercore-ltsc2022-amd64-Dockerfile.approved.txt @@ -0,0 +1,45 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2022-amd64 AS installer + +ARG ACCESSTOKEN + +# Install ASP.NET Core Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $aspnetcore_version = '0.0.0'; ` + $aspnetcore_build_version = $aspnetcore_version + '.25609.108'; ` + $aspnetcore_file = 'aspnetcore-runtime-' + $aspnetcore_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $aspnetcore_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $aspnetcore_file https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/$aspnetcore_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $aspnetcore_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $aspnetcore_file --directory dotnet ./shared/Microsoft.AspNetCore.App; ` + Remove-Item -Force ` + $aspnetcore_file, ` + $dotnet_sha512_file + + +# ASP.NET Core image +FROM $REPO:0.0.0-windowsservercore-ltsc2022 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet/shared/Microsoft.AspNetCore.App", "/Program Files/dotnet/shared/Microsoft.AspNetCore.App"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-windowsservercore-ltsc2025-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-windowsservercore-ltsc2025-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..0c0fc95cdf --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-windowsservercore-ltsc2025-amd64-Dockerfile.approved.txt @@ -0,0 +1,44 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +ARG ACCESSTOKEN + +# Install ASP.NET Core Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $aspnetcore_version = '0.0.0'; ` + $aspnetcore_file = 'aspnetcore-runtime-' + $aspnetcore_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $aspnetcore_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $aspnetcore_file https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/$aspnetcore_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $aspnetcore_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $aspnetcore_file --directory dotnet ./shared/Microsoft.AspNetCore.App; ` + Remove-Item -Force ` + $aspnetcore_file, ` + $dotnet_sha512_file + + +# ASP.NET Core image +FROM $REPO:0.0.0-windowsservercore-ltsc2025 + +# ASP.NET Core version +ENV ASPNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet/shared/Microsoft.AspNetCore.App", "/Program Files/dotnet/shared/Microsoft.AspNetCore.App"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.22-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.22-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..5de9d41bc9 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.22-amd64-Dockerfile.approved.txt @@ -0,0 +1,30 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-amd64 AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && dotnet_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-alpine3.XX-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..231c812ac3 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,30 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && dotnet_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz \ + dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..a5fcd904ae --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,30 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && dotnet_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.23-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.23-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..32b28e65af --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.23-amd64-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-amd64 AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-musl-x64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-alpine3.XX-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..531f790cac --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz \ + dotnet-runtime-$dotnet_version-linux-musl-arm.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..3bb298e1ca --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz \ + https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-musl-arm64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..1661f6e865 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-azurelinux3.0-amd64 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-azurelinux3.0-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..561daf3a1a --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-azurelinux3.0-arm64v8 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-azurelinux3.0-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..c0eb0dfd5b --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-amd64-Dockerfile.approved.txt @@ -0,0 +1,40 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:0.0.0-azurelinux3.0-distroless-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..64f97a946d --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,40 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:0.0.0-azurelinux3.0-distroless-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..7b89b776aa --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,40 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:0.0.0-azurelinux3.0-distroless-extra-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..660a144524 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux3.0-distroless-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,40 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + ca-certificates \ + gzip \ + tar \ + && tdnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:0.0.0-azurelinux3.0-distroless-extra-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-nanoserver-ltsc2022-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-nanoserver-ltsc2022-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..c5e0ab688f --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-nanoserver-ltsc2022-amd64-Dockerfile.approved.txt @@ -0,0 +1,53 @@ +# escape=` + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2022-amd64 AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $dotnet_version = '0.0.0'; ` + $dotnet_build_version = $dotnet_version + '.25609.108'; ` + $dotnet_file = 'dotnet-runtime-' + $dotnet_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $dotnet_file https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/$dotnet_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file + + +# Runtime image +FROM mcr.microsoft.com/windows/nanoserver:ltsc2022-amd64 + +ENV ` + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 ` + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true ` + # .NET Runtime version + DOTNET_VERSION=0.0.0 + +# In order to set system PATH, ContainerAdministrator must be used +USER ContainerAdministrator +RUN setx /M PATH "%PATH%;C:\Program Files\dotnet" +USER ContainerUser + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-nanoserver-ltsc2025-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-nanoserver-ltsc2025-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..d4f1527b5a --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-nanoserver-ltsc2025-amd64-Dockerfile.approved.txt @@ -0,0 +1,52 @@ +# escape=` + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $dotnet_version = '0.0.0'; ` + $dotnet_file = 'dotnet-runtime-' + $dotnet_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $dotnet_file https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/$dotnet_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file + + +# Runtime image +FROM mcr.microsoft.com/windows/nanoserver:ltsc2025-amd64 + +ENV ` + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 ` + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true ` + # .NET Runtime version + DOTNET_VERSION=0.0.0 + +# In order to set system PATH, ContainerAdministrator must be used +USER ContainerAdministrator +RUN setx /M PATH "%PATH%;C:\Program Files\dotnet" +USER ContainerUser + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..ef487ff40e --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-amd64-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-resolute-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..e834df5540 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-resolute-arm32v7 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..a769da48c4 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-resolute-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..e6c59471ec --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-amd64-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:0.0.0-resolute-chiseled-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..73d0677320 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:0.0.0-resolute-chiseled-arm32v7 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..dedb36674c --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:0.0.0-resolute-chiseled-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..0e3f915e43 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:0.0.0-resolute-chiseled-extra-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-extra-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-extra-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..6e3dd9adad --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-extra-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:0.0.0-resolute-chiseled-extra-arm32v7 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..d9775a00e2 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-resolute-chiseled-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 + +RUN mkdir /dotnet-symlink \ + && ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet + + +# .NET runtime image +FROM $REPO:0.0.0-resolute-chiseled-extra-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=0.0.0 + +COPY --from=installer ["/usr/share/dotnet", "/usr/share/dotnet"] +COPY --from=installer ["/dotnet-symlink", "/usr/bin"] + +ENTRYPOINT ["/usr/bin/dotnet"] +CMD ["--info"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-windowsservercore-ltsc2022-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-windowsservercore-ltsc2022-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..e0b7570c73 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-windowsservercore-ltsc2022-amd64-Dockerfile.approved.txt @@ -0,0 +1,50 @@ +# escape=` + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2022-amd64 AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $dotnet_version = '0.0.0'; ` + $dotnet_build_version = $dotnet_version + '.25609.108'; ` + $dotnet_file = 'dotnet-runtime-' + $dotnet_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $dotnet_file https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/$dotnet_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file + + +# Runtime image +FROM mcr.microsoft.com/windows/servercore:ltsc2022-amd64 + +ENV ` + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 ` + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true ` + # .NET Runtime version + DOTNET_VERSION=0.0.0 + +RUN setx /M PATH "%PATH%;C:\Program Files\dotnet" + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-windowsservercore-ltsc2025-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-windowsservercore-ltsc2025-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..a161d997f0 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-windowsservercore-ltsc2025-amd64-Dockerfile.approved.txt @@ -0,0 +1,49 @@ +# escape=` + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN powershell -Command ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + $dotnet_version = '0.0.0'; ` + $dotnet_file = 'dotnet-runtime-' + $dotnet_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $dotnet_file https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/$dotnet_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file + + +# Runtime image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 + +ENV ` + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 ` + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true ` + # .NET Runtime version + DOTNET_VERSION=0.0.0 + +RUN setx /M PATH "%PATH%;C:\Program Files\dotnet" + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..c3042512d9 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-amd64-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +FROM amd64/alpine:3.22 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + libgcc \ + libssl3 \ + libstdc++ + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..a543d8c074 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +FROM arm32v7/alpine:3.22 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + libgcc \ + libssl3 \ + libstdc++ + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..ab50a7bde1 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +FROM arm64v8/alpine:3.22 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + libgcc \ + libssl3 \ + libstdc++ + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..c9dc3b1da2 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,30 @@ +FROM amd64/alpine:3.22 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + icu-data-full \ + icu-libs \ + libgcc \ + libssl3 \ + libstdc++ \ + tzdata + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-extra-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-extra-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..dfa4053e2f --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-extra-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,30 @@ +FROM arm32v7/alpine:3.22 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + icu-data-full \ + icu-libs \ + libgcc \ + libssl3 \ + libstdc++ \ + tzdata + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..7c25ae6f2e --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.22-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,30 @@ +FROM arm64v8/alpine:3.22 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + icu-data-full \ + icu-libs \ + libgcc \ + libssl3 \ + libstdc++ \ + tzdata + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..3584d9343b --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-amd64-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +FROM amd64/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + libgcc \ + libssl3 \ + libstdc++ + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..44fac11e41 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +FROM arm32v7/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + libgcc \ + libssl3 \ + libstdc++ + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..682d8bd495 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,29 @@ +FROM arm64v8/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + libgcc \ + libssl3 \ + libstdc++ + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..e4e8a49348 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,30 @@ +FROM amd64/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + icu-data-full \ + icu-libs \ + libgcc \ + libssl3 \ + libstdc++ \ + tzdata + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-extra-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-extra-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..459793f172 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-extra-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,30 @@ +FROM arm32v7/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + icu-data-full \ + icu-libs \ + libgcc \ + libssl3 \ + libstdc++ \ + tzdata + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..cdbd11bda4 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-alpine3.23-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,30 @@ +FROM arm64v8/alpine:3.23 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apk add --upgrade --no-cache \ + ca-certificates-bundle \ + \ + # .NET dependencies + icu-data-full \ + icu-libs \ + libgcc \ + libssl3 \ + libstdc++ \ + tzdata + +# Create a non-root user and group +RUN addgroup \ + --gid=$APP_UID \ + app \ + && adduser \ + --uid=$APP_UID \ + --ingroup=app \ + --disabled-password \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..4adeda9e8f --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux/base/core:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN tdnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && tdnf clean all + +# Create a non-root user and group +RUN tdnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && tdnf autoremove -y \ + shadow-utils \ + && tdnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..4adeda9e8f --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux/base/core:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN tdnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && tdnf clean all + +# Create a non-root user and group +RUN tdnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && tdnf autoremove -y \ + shadow-utils \ + && tdnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..94daad8657 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-amd64-Dockerfile.approved.txt @@ -0,0 +1,73 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + gawk \ + shadow-utils \ + && tdnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && tdnf install -y --releasever=3.0 --installroot /staging \ + prebuilt-ca-certificates \ + \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && tdnf clean all --releasever=3.0 --installroot /staging + +# Generate RPM manifest file by appending to the original manifest file from base distroless image +COPY --from=mcr.microsoft.com/azurelinux/distroless/minimal:3.0 /var/lib/rpmmanifest/container-manifest-2 /tmp/rpmmanifest +RUN tmpManifestPath="/tmp/rpmmanifest" \ + && rpm --query --all --queryformat "%{NAME}\t%{VERSION}-%{RELEASE}\t%{INSTALLTIME}\t%{BUILDTIME}\t%{VENDOR}\t%{EPOCH}\t%{SIZE}\t%{ARCH}\t%{EPOCHNUM}\t%{SOURCERPM}\n" --root /staging | grep -v gpg-pubkey >> $tmpManifestPath \ + && mkdir --parents /staging/var/lib/rpmmanifest \ + # Remove duplicates that match on the first field (package name) + && tac $tmpManifestPath | gawk '!x[$1]++' | sort > /staging/var/lib/rpmmanifest/container-manifest-2 + +# Create a non-root user and group +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + --create-home \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/staging/home/app" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/staging/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/staging/etc/group" + +# Clean up staging +RUN rm -rf \ + /staging/etc/tdnf \ + /staging/run/* \ + /staging/var/cache/tdnf \ + /staging/var/lib/rpm \ + /staging/usr/share/doc \ + /staging/usr/share/man \ + && find /staging/var/log -type f -size +0 -delete + + +# .NET runtime-deps image +FROM mcr.microsoft.com/azurelinux/distroless/minimal:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +COPY --from=installer /staging/ / + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=installer --chown=1654:1654 /staging/home/app /home/app + +USER $APP_UID diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..94daad8657 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,73 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + gawk \ + shadow-utils \ + && tdnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && tdnf install -y --releasever=3.0 --installroot /staging \ + prebuilt-ca-certificates \ + \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && tdnf clean all --releasever=3.0 --installroot /staging + +# Generate RPM manifest file by appending to the original manifest file from base distroless image +COPY --from=mcr.microsoft.com/azurelinux/distroless/minimal:3.0 /var/lib/rpmmanifest/container-manifest-2 /tmp/rpmmanifest +RUN tmpManifestPath="/tmp/rpmmanifest" \ + && rpm --query --all --queryformat "%{NAME}\t%{VERSION}-%{RELEASE}\t%{INSTALLTIME}\t%{BUILDTIME}\t%{VENDOR}\t%{EPOCH}\t%{SIZE}\t%{ARCH}\t%{EPOCHNUM}\t%{SOURCERPM}\n" --root /staging | grep -v gpg-pubkey >> $tmpManifestPath \ + && mkdir --parents /staging/var/lib/rpmmanifest \ + # Remove duplicates that match on the first field (package name) + && tac $tmpManifestPath | gawk '!x[$1]++' | sort > /staging/var/lib/rpmmanifest/container-manifest-2 + +# Create a non-root user and group +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + --create-home \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/staging/home/app" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/staging/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/staging/etc/group" + +# Clean up staging +RUN rm -rf \ + /staging/etc/tdnf \ + /staging/run/* \ + /staging/var/cache/tdnf \ + /staging/var/lib/rpm \ + /staging/usr/share/doc \ + /staging/usr/share/man \ + && find /staging/var/log -type f -size +0 -delete + + +# .NET runtime-deps image +FROM mcr.microsoft.com/azurelinux/distroless/minimal:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +COPY --from=installer /staging/ / + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=installer --chown=1654:1654 /staging/home/app /home/app + +USER $APP_UID diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..b3aa352eba --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,73 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + gawk \ + shadow-utils \ + && tdnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && tdnf install -y --releasever=3.0 --installroot /staging \ + prebuilt-ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && tdnf clean all --releasever=3.0 --installroot /staging + +# Generate RPM manifest file by appending to the original manifest file from base distroless image +COPY --from=mcr.microsoft.com/azurelinux/distroless/minimal:3.0 /var/lib/rpmmanifest/container-manifest-2 /tmp/rpmmanifest +RUN tmpManifestPath="/tmp/rpmmanifest" \ + && rpm --query --all --queryformat "%{NAME}\t%{VERSION}-%{RELEASE}\t%{INSTALLTIME}\t%{BUILDTIME}\t%{VENDOR}\t%{EPOCH}\t%{SIZE}\t%{ARCH}\t%{EPOCHNUM}\t%{SOURCERPM}\n" --root /staging | grep -v gpg-pubkey >> $tmpManifestPath \ + && mkdir --parents /staging/var/lib/rpmmanifest \ + # Remove duplicates that match on the first field (package name) + && tac $tmpManifestPath | gawk '!x[$1]++' | sort > /staging/var/lib/rpmmanifest/container-manifest-2 + +# Create a non-root user and group +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + --create-home \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/staging/home/app" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/staging/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/staging/etc/group" + +# Clean up staging +RUN rm -rf \ + /staging/etc/tdnf \ + /staging/run/* \ + /staging/var/cache/tdnf \ + /staging/var/lib/rpm \ + /staging/usr/share/doc \ + /staging/usr/share/man \ + && find /staging/var/log -type f -size +0 -delete + + +# .NET runtime-deps image +FROM mcr.microsoft.com/azurelinux/distroless/minimal:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +COPY --from=installer /staging/ / + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=installer --chown=1654:1654 /staging/home/app /home/app + +USER $APP_UID diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..b3aa352eba --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux3.0-distroless-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,73 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux/base/core:3.0 AS installer + +RUN tdnf install -y \ + gawk \ + shadow-utils \ + && tdnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && tdnf install -y --releasever=3.0 --installroot /staging \ + prebuilt-ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && tdnf clean all --releasever=3.0 --installroot /staging + +# Generate RPM manifest file by appending to the original manifest file from base distroless image +COPY --from=mcr.microsoft.com/azurelinux/distroless/minimal:3.0 /var/lib/rpmmanifest/container-manifest-2 /tmp/rpmmanifest +RUN tmpManifestPath="/tmp/rpmmanifest" \ + && rpm --query --all --queryformat "%{NAME}\t%{VERSION}-%{RELEASE}\t%{INSTALLTIME}\t%{BUILDTIME}\t%{VENDOR}\t%{EPOCH}\t%{SIZE}\t%{ARCH}\t%{EPOCHNUM}\t%{SOURCERPM}\n" --root /staging | grep -v gpg-pubkey >> $tmpManifestPath \ + && mkdir --parents /staging/var/lib/rpmmanifest \ + # Remove duplicates that match on the first field (package name) + && tac $tmpManifestPath | gawk '!x[$1]++' | sort > /staging/var/lib/rpmmanifest/container-manifest-2 + +# Create a non-root user and group +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + --create-home \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/staging/home/app" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/staging/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/staging/etc/group" + +# Clean up staging +RUN rm -rf \ + /staging/etc/tdnf \ + /staging/run/* \ + /staging/var/cache/tdnf \ + /staging/var/lib/rpm \ + /staging/usr/share/doc \ + /staging/usr/share/man \ + && find /staging/var/log -type f -size +0 -delete + + +# .NET runtime-deps image +FROM mcr.microsoft.com/azurelinux/distroless/minimal:3.0 + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +COPY --from=installer /staging/ / + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=installer --chown=1654:1654 /staging/home/app /home/app + +USER $APP_UID diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..79b4af5af5 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-amd64-Dockerfile.approved.txt @@ -0,0 +1,32 @@ +FROM ubuntu.azurecr.io/ubuntu:resolute + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + \ + # .NET dependencies + libc6 \ + libgcc-s1 \ + libicu76 \ + libssl3t64 \ + libstdc++6 \ + tzdata \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user and group +RUN groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..79b4af5af5 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,32 @@ +FROM ubuntu.azurecr.io/ubuntu:resolute + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + \ + # .NET dependencies + libc6 \ + libgcc-s1 \ + libicu76 \ + libssl3t64 \ + libstdc++6 \ + tzdata \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user and group +RUN groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..79b4af5af5 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,32 @@ +FROM ubuntu.azurecr.io/ubuntu:resolute + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + \ + # .NET dependencies + libc6 \ + libgcc-s1 \ + libicu76 \ + libssl3t64 \ + libstdc++6 \ + tzdata \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user and group +RUN groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..0bbb0335c9 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-amd64-Dockerfile.approved.txt @@ -0,0 +1,57 @@ +FROM amd64/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v0.0.0/chisel_v0.0.0_linux_amd64.tar.gz \ + && chisel_sha384='{sha386_placeholder}' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v0.0.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libssl3t64_libs \ + libstdc++6_libs + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..e7c0c971b0 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,57 @@ +FROM arm32v7/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v0.0.0/chisel_v0.0.0_linux_arm.tar.gz \ + && chisel_sha384='{sha386_placeholder}' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v0.0.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libssl3t64_libs \ + libstdc++6_libs + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..a2de6a0781 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,57 @@ +FROM arm64v8/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v0.0.0/chisel_v0.0.0_linux_arm64.tar.gz \ + && chisel_sha384='{sha386_placeholder}' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v0.0.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libssl3t64_libs \ + libstdc++6_libs + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Set the invariant mode since ICU package isn't included (see https://github.com/dotnet/announcements/issues/20) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..1d2ea4bfea --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,58 @@ +FROM amd64/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v0.0.0/chisel_v0.0.0_linux_amd64.tar.gz \ + && chisel_sha384='{sha386_placeholder}' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v0.0.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libicu76_libs \ + libssl3t64_libs \ + libstdc++6_libs \ + tzdata-legacy_zoneinfo \ + tzdata_zoneinfo + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-extra-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-extra-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..59ffe12e21 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-extra-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,58 @@ +FROM arm32v7/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v0.0.0/chisel_v0.0.0_linux_arm.tar.gz \ + && chisel_sha384='{sha386_placeholder}' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v0.0.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libicu76_libs \ + libssl3t64_libs \ + libstdc++6_libs \ + tzdata-legacy_zoneinfo \ + tzdata_zoneinfo + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..91e2dabd67 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-resolute-chiseled-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,58 @@ +FROM arm64v8/buildpack-deps:resolute-curl AS chisel + +RUN apt-get update && apt-get install -y file + +RUN curl --fail --show-error --location --output chisel.tar.gz https://github.com/canonical/chisel/releases/download/v0.0.0/chisel_v0.0.0_linux_arm64.tar.gz \ + && chisel_sha384='{sha386_placeholder}' \ + && echo "$chisel_sha384 chisel.tar.gz" | sha384sum -c - \ + && tar --gzip --extract --no-same-owner --file chisel.tar.gz --directory /usr/bin/ \ + && rm chisel.tar.gz \ + && curl --fail --show-error --location --output /usr/bin/chisel-wrapper https://raw.githubusercontent.com/canonical/rocks-toolbox/v0.0.0/chisel-wrapper \ + && chmod 755 /usr/bin/chisel-wrapper + +RUN groupadd \ + --gid=1654 \ + app \ + && useradd --no-log-init \ + --uid=1654 \ + --gid=1654 \ + --shell /bin/false \ + app \ + && install --directory --mode 0755 --owner 1654 --group 1654 "/rootfs/home/app" \ + && mkdir --parents "/rootfs/etc" \ + && rootOrAppRegex='^\(root\|app\):' \ + && cat /etc/passwd | grep $rootOrAppRegex > "/rootfs/etc/passwd" \ + && cat /etc/group | grep $rootOrAppRegex > "/rootfs/etc/group" + +RUN mkdir --parents /rootfs/var/lib/dpkg/ \ + && chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \ + --release ubuntu-26.04 --ignore=unstable --root /rootfs \ + base-files_base \ + base-files_chisel \ + base-files_release-info \ + ca-certificates_data \ + libc6_libs \ + libgcc-s1_libs \ + libicu76_libs \ + libssl3t64_libs \ + libstdc++6_libs \ + tzdata-legacy_zoneinfo \ + tzdata_zoneinfo + + +FROM scratch + +COPY --from=chisel /rootfs / + +ENV \ + # UID of the non-root user 'app' + APP_UID=1654 \ + # Configure web servers to bind to port 8080 when present + ASPNETCORE_HTTP_PORTS=8080 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true + +# Workaround for https://github.com/moby/moby/issues/38710 +COPY --from=chisel --chown=$APP_UID:$APP_UID /rootfs/home/app /home/app + +USER $APP_UID diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..9c802571ba --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-amd64-Dockerfile.approved.txt @@ -0,0 +1,70 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-alpine3.XX-amd64 AS installer + +ARG ACCESSTOKEN + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && dotnet_sdk_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-alpine3.XX-amd64 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=0.0.0 \ + # Disable the invariant mode (set in base image) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Alpine-3.22 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN apk add --upgrade --no-cache \ + curl \ + git \ + icu-data-full \ + icu-libs \ + libatomic \ + tzdata + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=0.0.0 \ + && wget --output-document PowerShell.Linux.Alpine.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.Alpine.$powershell_version.nupkg \ + && powershell_sha512='{sha512_placeholder}' \ + && echo "$powershell_sha512 PowerShell.Linux.Alpine.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.Alpine \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.Alpine.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm \ + # Add ncurses-terminfo-base to resolve psreadline dependency + && apk add --no-cache ncurses-terminfo-base diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-aot-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-aot-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..5f7812c897 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-aot-amd64-Dockerfile.approved.txt @@ -0,0 +1,8 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-alpine3.XX-amd64 + +RUN apk add --upgrade --no-cache \ + build-base \ + clang \ + zlib-dev diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-aot-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-aot-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..19046afa59 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-aot-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,8 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-alpine3.XX-arm64v8 + +RUN apk add --upgrade --no-cache \ + build-base \ + clang \ + zlib-dev diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..e65958efad --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,50 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 AS installer + +ARG ACCESSTOKEN + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && dotnet_sdk_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=0.0.0 \ + # Disable the invariant mode (set in base image) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip + +RUN apk add --upgrade --no-cache \ + curl \ + git \ + icu-data-full \ + icu-libs \ + libatomic \ + tzdata + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..3087254b38 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.22-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,50 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 AS installer + +ARG ACCESSTOKEN + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && dotnet_sdk_build_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=0.0.0 \ + # Disable the invariant mode (set in base image) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip + +RUN apk add --upgrade --no-cache \ + curl \ + git \ + icu-data-full \ + icu-libs \ + libatomic \ + tzdata + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..e5cce2b97f --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-amd64-Dockerfile.approved.txt @@ -0,0 +1,69 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-alpine3.XX-amd64 AS installer + +ARG ACCESSTOKEN + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-alpine3.XX-amd64 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=0.0.0 \ + # Disable the invariant mode (set in base image) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Alpine-3.23 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN apk add --upgrade --no-cache \ + curl \ + git \ + icu-data-full \ + icu-libs \ + libatomic \ + tzdata + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=0.0.0 \ + && wget --output-document PowerShell.Linux.Alpine.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.Alpine.$powershell_version.nupkg \ + && powershell_sha512='{sha512_placeholder}' \ + && echo "$powershell_sha512 PowerShell.Linux.Alpine.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.Alpine \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.Alpine.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm \ + # Add ncurses-terminfo-base to resolve psreadline dependency + && apk add --no-cache ncurses-terminfo-base diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-aot-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-aot-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..5f7812c897 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-aot-amd64-Dockerfile.approved.txt @@ -0,0 +1,8 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-alpine3.XX-amd64 + +RUN apk add --upgrade --no-cache \ + build-base \ + clang \ + zlib-dev diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-aot-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-aot-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..19046afa59 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-aot-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,8 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-alpine3.XX-arm64v8 + +RUN apk add --upgrade --no-cache \ + build-base \ + clang \ + zlib-dev diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..34dc206b0e --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,49 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 AS installer + +ARG ACCESSTOKEN + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-alpine3.XX-arm32v7 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=0.0.0 \ + # Disable the invariant mode (set in base image) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip + +RUN apk add --upgrade --no-cache \ + curl \ + git \ + icu-data-full \ + icu-libs \ + libatomic \ + tzdata + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..691687fa4a --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-alpine3.23-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,49 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 AS installer + +ARG ACCESSTOKEN + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && wget --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz \ + https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-musl-arm64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-alpine3.XX-arm64v8 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=0.0.0 \ + # Disable the invariant mode (set in base image) + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip + +RUN apk add --upgrade --no-cache \ + curl \ + git \ + icu-data-full \ + icu-libs \ + libatomic \ + tzdata + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..0f6b1c0d8c --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,67 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-azurelinux3.0-amd64 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-azurelinux3.0-amd64 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=0.0.0 \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Azure-Linux-3.0 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN tdnf install -y \ + git \ + libgcc-atomic \ + tar \ + && tdnf clean all + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=0.0.0 \ + && curl --fail --show-error --location --output PowerShell.Linux.x64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.x64.$powershell_version.nupkg \ + && powershell_sha512='{sha512_placeholder}' \ + && echo "$powershell_sha512 PowerShell.Linux.x64.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.x64 \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.x64.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-aot-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-aot-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..ab3e377c59 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-aot-amd64-Dockerfile.approved.txt @@ -0,0 +1,9 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-azurelinux3.0-amd64 + +RUN tdnf install -y \ + build-essential \ + clang \ + zlib-devel \ + && tdnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-aot-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-aot-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..d54911d329 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-aot-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,9 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-azurelinux3.0-arm64v8 + +RUN tdnf install -y \ + build-essential \ + clang \ + zlib-devel \ + && tdnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..cba4d6df79 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux3.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,67 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-azurelinux3.0-arm64v8 AS installer + +ARG ACCESSTOKEN + +RUN tdnf install -y \ + tar \ + && tdnf clean all + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-azurelinux3.0-arm64v8 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=0.0.0 \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Azure-Linux-3.0-arm64 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN tdnf install -y \ + git \ + libgcc-atomic \ + tar \ + && tdnf clean all + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=0.0.0 \ + && curl --fail --show-error --location --output PowerShell.Linux.arm64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.arm64.$powershell_version.nupkg \ + && powershell_sha512='{sha512_placeholder}' \ + && echo "$powershell_sha512 PowerShell.Linux.arm64.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.arm64 \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.arm64.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-nanoserver-ltsc2022-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-nanoserver-ltsc2022-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..b40945361a --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-nanoserver-ltsc2022-amd64-Dockerfile.approved.txt @@ -0,0 +1,103 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/aspnet + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2022-amd64 AS installer + +ARG ACCESSTOKEN + +# Download MinGit +RUN powershell -Command " ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + Invoke-WebRequest -OutFile mingit.zip https://github.com/git-for-windows/git/releases/download/v0.0.0.windows.0/MinGit-0.0.0-64-bit.zip; ` + $mingit_sha256 = '{sha256_placeholder}'; ` + if ((Get-FileHash mingit.zip -Algorithm sha256).Hash -ne $mingit_sha256) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + mkdir MinGit; ` + tar --gzip --extract --no-same-owner --file mingit.zip --directory MinGit; ` + Remove-Item -Force mingit.zip" + +SHELL ["powershell", "-command"] +RUN ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + # Retrieve .NET SDK + $dotnet_sdk_version = '0.0.0'; ` + $dotnet_sdk_build_version = $dotnet_sdk_version + '.25609.108'; ` + $dotnet_file = 'dotnet-sdk-' + $dotnet_sdk_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $dotnet_file https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/$dotnet_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file; ` + ` + # Install PowerShell global tool + $powershell_version = '0.0.0'; ` + Invoke-WebRequest -OutFile PowerShell.Windows.x64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Windows.x64.$powershell_version.nupkg; ` + $powershell_sha512 = '{sha512_placeholder}'; ` + if ((Get-FileHash PowerShell.Windows.x64.$powershell_version.nupkg -Algorithm sha512).Hash -ne $powershell_sha512) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + & \dotnet\dotnet tool install --add-source . --tool-path \powershell --version $powershell_version PowerShell.Windows.x64; ` + & \dotnet\dotnet nuget locals all --clear; ` + Remove-Item -Force PowerShell.Windows.x64.$powershell_version.nupkg; ` + Remove-Item -Path \powershell\.store\powershell.windows.x64\$powershell_version\powershell.windows.x64\$powershell_version\powershell.windows.x64.$powershell_version.nupkg -Force; ` + ` + # Delete everything in the dotnet folder that's not needed in the SDK layer but will instead be derived from base layers + Get-ChildItem -Exclude 'dnx.cmd','dnx.ps1','LICENSE.txt','ThirdPartyNotices.txt','packs','sdk','sdk-manifests','templates','shared' -Path dotnet ` + | Remove-Item -Force -Recurse; ` + Get-ChildItem -Exclude 'Microsoft.WindowsDesktop.App' -Path dotnet\shared ` + | Remove-Item -Force -Recurse + + +# SDK image +FROM $REPO:0.0.0-nanoserver-ltsc2022 + +ENV ` + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false ` + # Do not show first run text + DOTNET_NOLOGO=true ` + # SDK version + DOTNET_SDK_VERSION=0.0.0 ` + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true ` + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip ` + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-NanoServer-ltsc2022 ` + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +# In order to set system PATH, ContainerAdministrator must be used +USER ContainerAdministrator +RUN setx /M PATH "%PATH%;C:\Program Files\powershell;C:\Program Files\MinGit\cmd" +USER ContainerUser + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] +COPY --from=installer ["/powershell", "/Program Files/powershell"] +COPY --from=installer ["/MinGit", "/Program Files/MinGit"] + +# Trigger first run experience by running arbitrary cmd +RUN dotnet help diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-nanoserver-ltsc2025-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-nanoserver-ltsc2025-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..126cf83a04 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-nanoserver-ltsc2025-amd64-Dockerfile.approved.txt @@ -0,0 +1,102 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/aspnet + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +ARG ACCESSTOKEN + +# Download MinGit +RUN powershell -Command " ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + Invoke-WebRequest -OutFile mingit.zip https://github.com/git-for-windows/git/releases/download/v0.0.0.windows.0/MinGit-0.0.0-64-bit.zip; ` + $mingit_sha256 = '{sha256_placeholder}'; ` + if ((Get-FileHash mingit.zip -Algorithm sha256).Hash -ne $mingit_sha256) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + mkdir MinGit; ` + tar --gzip --extract --no-same-owner --file mingit.zip --directory MinGit; ` + Remove-Item -Force mingit.zip" + +SHELL ["powershell", "-command"] +RUN ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + # Retrieve .NET SDK + $dotnet_sdk_version = '0.0.0'; ` + $dotnet_file = 'dotnet-sdk-' + $dotnet_sdk_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $dotnet_file https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/$dotnet_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file; ` + ` + # Install PowerShell global tool + $powershell_version = '0.0.0'; ` + Invoke-WebRequest -OutFile PowerShell.Windows.x64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Windows.x64.$powershell_version.nupkg; ` + $powershell_sha512 = '{sha512_placeholder}'; ` + if ((Get-FileHash PowerShell.Windows.x64.$powershell_version.nupkg -Algorithm sha512).Hash -ne $powershell_sha512) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + & \dotnet\dotnet tool install --add-source . --tool-path \powershell --version $powershell_version PowerShell.Windows.x64; ` + & \dotnet\dotnet nuget locals all --clear; ` + Remove-Item -Force PowerShell.Windows.x64.$powershell_version.nupkg; ` + Remove-Item -Path \powershell\.store\powershell.windows.x64\$powershell_version\powershell.windows.x64\$powershell_version\powershell.windows.x64.$powershell_version.nupkg -Force; ` + ` + # Delete everything in the dotnet folder that's not needed in the SDK layer but will instead be derived from base layers + Get-ChildItem -Exclude 'dnx.cmd','dnx.ps1','LICENSE.txt','ThirdPartyNotices.txt','packs','sdk','sdk-manifests','templates','shared' -Path dotnet ` + | Remove-Item -Force -Recurse; ` + Get-ChildItem -Exclude 'Microsoft.WindowsDesktop.App' -Path dotnet\shared ` + | Remove-Item -Force -Recurse + + +# SDK image +FROM $REPO:0.0.0-nanoserver-ltsc2025 + +ENV ` + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false ` + # Do not show first run text + DOTNET_NOLOGO=true ` + # SDK version + DOTNET_SDK_VERSION=0.0.0 ` + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true ` + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip ` + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-NanoServer-ltsc2025 ` + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +# In order to set system PATH, ContainerAdministrator must be used +USER ContainerAdministrator +RUN setx /M PATH "%PATH%;C:\Program Files\powershell;C:\Program Files\MinGit\cmd" +USER ContainerUser + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] +COPY --from=installer ["/powershell", "/Program Files/powershell"] +COPY --from=installer ["/MinGit", "/Program Files/MinGit"] + +# Trigger first run experience by running arbitrary cmd +RUN dotnet help diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..e4c89146c0 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-amd64-Dockerfile.approved.txt @@ -0,0 +1,65 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM amd64/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-resolute-amd64 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=0.0.0 \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-26.04 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + curl \ + git \ + libatomic1 \ + wget \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=0.0.0 \ + && curl --fail --show-error --location --output PowerShell.Linux.x64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.x64.$powershell_version.nupkg \ + && powershell_sha512='{sha512_placeholder}' \ + && echo "$powershell_sha512 PowerShell.Linux.x64.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.x64 \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.x64.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-aot-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-aot-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..52e83574dd --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-aot-amd64-Dockerfile.approved.txt @@ -0,0 +1,10 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-resolute-amd64 + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + clang \ + llvm \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-aot-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-aot-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..6ccb65edfd --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-aot-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,10 @@ +# syntax=docker/dockerfile:1 +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-resolute-arm64v8 + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + clang \ + llvm \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-arm32v7-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-arm32v7-Dockerfile.approved.txt new file mode 100644 index 0000000000..ee47dc3e1c --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-arm32v7-Dockerfile.approved.txt @@ -0,0 +1,65 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM arm32v7/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-arm.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-resolute-arm32v7 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=0.0.0 \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-26.04-arm32 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + curl \ + git \ + libatomic1 \ + wget \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=0.0.0 \ + && curl --fail --show-error --location --output PowerShell.Linux.arm32.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.arm32.$powershell_version.nupkg \ + && powershell_sha512='{sha512_placeholder}' \ + && echo "$powershell_sha512 PowerShell.Linux.arm32.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.arm32 \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.arm32.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..e78f70f64f --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-resolute-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,65 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM arm64v8/buildpack-deps:resolute-curl AS installer + +ARG ACCESSTOKEN + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && curl --header "Authorization: Bearer $ACCESSTOKEN" --header "x-ms-version: 2017-11-09" --fail --show-error --location \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512| tr 'A-F' 'a-f') dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz \ + dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-resolute-arm64v8 + +ENV \ + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false \ + # Do not show first run text + DOTNET_NOLOGO=true \ + # SDK version + DOTNET_SDK_VERSION=0.0.0 \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip \ + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-26.04-arm64 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + curl \ + git \ + libatomic1 \ + wget \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \ + # Trigger first run experience by running arbitrary cmd + && dotnet help + +# Install PowerShell global tool +RUN powershell_version=0.0.0 \ + && curl --fail --show-error --location --output PowerShell.Linux.arm64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.arm64.$powershell_version.nupkg \ + && powershell_sha512='{sha512_placeholder}' \ + && echo "$powershell_sha512 PowerShell.Linux.arm64.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir --parents /usr/share/powershell \ + && dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.arm64 \ + && dotnet nuget locals all --clear \ + && rm PowerShell.Linux.arm64.$powershell_version.nupkg \ + && ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \ + && chmod 755 /usr/share/powershell/pwsh \ + # To reduce image size, remove the copy nupkg that nuget keeps. + && find /usr/share/powershell -print | grep -i '.*[.]nupkg$' | xargs rm diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-windowsservercore-ltsc2022-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-windowsservercore-ltsc2022-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..06dad30859 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-windowsservercore-ltsc2022-amd64-Dockerfile.approved.txt @@ -0,0 +1,100 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/aspnet + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2022-amd64 AS installer + +ARG ACCESSTOKEN + +# Download MinGit +RUN powershell -Command " ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + Invoke-WebRequest -OutFile mingit.zip https://github.com/git-for-windows/git/releases/download/v0.0.0.windows.0/MinGit-0.0.0-64-bit.zip; ` + $mingit_sha256 = '{sha256_placeholder}'; ` + if ((Get-FileHash mingit.zip -Algorithm sha256).Hash -ne $mingit_sha256) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + mkdir MinGit; ` + tar --gzip --extract --no-same-owner --file mingit.zip --directory MinGit; ` + Remove-Item -Force mingit.zip" + +SHELL ["powershell", "-command"] +RUN ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + # Retrieve .NET SDK + $dotnet_sdk_version = '0.0.0'; ` + $dotnet_sdk_build_version = $dotnet_sdk_version + '.25609.108'; ` + $dotnet_file = 'dotnet-sdk-' + $dotnet_sdk_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $dotnet_file https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/$dotnet_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file; ` + ` + # Install PowerShell global tool + $powershell_version = '0.0.0'; ` + Invoke-WebRequest -OutFile PowerShell.Windows.x64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Windows.x64.$powershell_version.nupkg; ` + $powershell_sha512 = '{sha512_placeholder}'; ` + if ((Get-FileHash PowerShell.Windows.x64.$powershell_version.nupkg -Algorithm sha512).Hash -ne $powershell_sha512) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + & \dotnet\dotnet tool install --add-source . --tool-path \powershell --version $powershell_version PowerShell.Windows.x64; ` + & \dotnet\dotnet nuget locals all --clear; ` + Remove-Item -Force PowerShell.Windows.x64.$powershell_version.nupkg; ` + Remove-Item -Path \powershell\.store\powershell.windows.x64\$powershell_version\powershell.windows.x64\$powershell_version\powershell.windows.x64.$powershell_version.nupkg -Force; ` + ` + # Delete everything in the dotnet folder that's not needed in the SDK layer but will instead be derived from base layers + Get-ChildItem -Exclude 'dnx.cmd','dnx.ps1','LICENSE.txt','ThirdPartyNotices.txt','packs','sdk','sdk-manifests','templates','shared' -Path dotnet ` + | Remove-Item -Force -Recurse; ` + Get-ChildItem -Exclude 'Microsoft.WindowsDesktop.App' -Path dotnet\shared ` + | Remove-Item -Force -Recurse + + +# SDK image +FROM $REPO:0.0.0-windowsservercore-ltsc2022 + +ENV ` + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false ` + # Do not show first run text + DOTNET_NOLOGO=true ` + # SDK version + DOTNET_SDK_VERSION=0.0.0 ` + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true ` + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip ` + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-WindowsServerCore-ltsc2022 ` + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN setx /M PATH "%PATH%;C:\Program Files\powershell;C:\Program Files\MinGit\cmd" + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] +COPY --from=installer ["/powershell", "/Program Files/powershell"] +COPY --from=installer ["/MinGit", "/Program Files/MinGit"] + +# Trigger first run experience by running arbitrary cmd +RUN dotnet help diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-windowsservercore-ltsc2025-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-windowsservercore-ltsc2025-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..5aa5d6d377 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-windowsservercore-ltsc2025-amd64-Dockerfile.approved.txt @@ -0,0 +1,99 @@ +# escape=` + +ARG REPO=mcr.microsoft.com/dotnet/aspnet + +# Installer image +FROM mcr.microsoft.com/windows/servercore:ltsc2025-amd64 AS installer + +ARG ACCESSTOKEN + +# Download MinGit +RUN powershell -Command " ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + Invoke-WebRequest -OutFile mingit.zip https://github.com/git-for-windows/git/releases/download/v0.0.0.windows.0/MinGit-0.0.0-64-bit.zip; ` + $mingit_sha256 = '{sha256_placeholder}'; ` + if ((Get-FileHash mingit.zip -Algorithm sha256).Hash -ne $mingit_sha256) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + mkdir MinGit; ` + tar --gzip --extract --no-same-owner --file mingit.zip --directory MinGit; ` + Remove-Item -Force mingit.zip" + +SHELL ["powershell", "-command"] +RUN ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + ` + # Retrieve .NET SDK + $dotnet_sdk_version = '0.0.0'; ` + $dotnet_file = 'dotnet-sdk-' + $dotnet_sdk_version + '-win-x64.zip'; ` + $dotnet_sha512_file = $dotnet_file + '.sha512'; ` + ` + $Headers = @{ ` + Authorization = \"Bearer $env:ACCESSTOKEN\"; ` + 'x-ms-version' = '2017-11-09'; ` + }; ` + Invoke-WebRequest -OutFile $dotnet_file https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/$dotnet_file -Headers $Headers; ` + Invoke-WebRequest -OutFile $dotnet_sha512_file https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_version/$dotnet_sha512_file -Headers $Headers; ` + ` + if ((Get-FileHash $dotnet_file -Algorithm sha512).Hash -ne (Get-Content $dotnet_sha512_file)) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + ` + mkdir dotnet; ` + tar --gzip --extract --no-same-owner --file $dotnet_file --directory dotnet; ` + Remove-Item -Force ` + $dotnet_file, ` + $dotnet_sha512_file; ` + ` + # Install PowerShell global tool + $powershell_version = '0.0.0'; ` + Invoke-WebRequest -OutFile PowerShell.Windows.x64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Windows.x64.$powershell_version.nupkg; ` + $powershell_sha512 = '{sha512_placeholder}'; ` + if ((Get-FileHash PowerShell.Windows.x64.$powershell_version.nupkg -Algorithm sha512).Hash -ne $powershell_sha512) { ` + Write-Host 'CHECKSUM VERIFICATION FAILED!'; ` + exit 1; ` + }; ` + & \dotnet\dotnet tool install --add-source . --tool-path \powershell --version $powershell_version PowerShell.Windows.x64; ` + & \dotnet\dotnet nuget locals all --clear; ` + Remove-Item -Force PowerShell.Windows.x64.$powershell_version.nupkg; ` + Remove-Item -Path \powershell\.store\powershell.windows.x64\$powershell_version\powershell.windows.x64\$powershell_version\powershell.windows.x64.$powershell_version.nupkg -Force; ` + ` + # Delete everything in the dotnet folder that's not needed in the SDK layer but will instead be derived from base layers + Get-ChildItem -Exclude 'dnx.cmd','dnx.ps1','LICENSE.txt','ThirdPartyNotices.txt','packs','sdk','sdk-manifests','templates','shared' -Path dotnet ` + | Remove-Item -Force -Recurse; ` + Get-ChildItem -Exclude 'Microsoft.WindowsDesktop.App' -Path dotnet\shared ` + | Remove-Item -Force -Recurse + + +# SDK image +FROM $REPO:0.0.0-windowsservercore-ltsc2025 + +ENV ` + # Do not generate certificate + DOTNET_GENERATE_ASPNET_CERTIFICATE=false ` + # Do not show first run text + DOTNET_NOLOGO=true ` + # SDK version + DOTNET_SDK_VERSION=0.0.0 ` + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true ` + # Skip extraction of XML docs - generally not useful within an image/container - helps performance + NUGET_XMLDOC_MODE=skip ` + # PowerShell telemetry for docker image usage + POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-WindowsServerCore-ltsc2025 ` + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN setx /M PATH "%PATH%;C:\Program Files\powershell;C:\Program Files\MinGit\cmd" + +COPY --from=installer ["/dotnet", "/Program Files/dotnet"] +COPY --from=installer ["/powershell", "/Program Files/powershell"] +COPY --from=installer ["/MinGit", "/Program Files/MinGit"] + +# Trigger first run experience by running arbitrary cmd +RUN dotnet help diff --git a/tests/Microsoft.DotNet.Docker.Tests/ImageData.cs b/tests/Microsoft.DotNet.Docker.Tests/ImageData.cs index 856bd27a20..8bc193ef8f 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/ImageData.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/ImageData.cs @@ -162,7 +162,7 @@ protected string GetArchLabel() => Arch.Amd64 => "amd64", Arch.Arm => "arm32v7", Arch.Arm64 => "arm64v8", - _ => throw new NotSupportedException() + _ => throw new NotSupportedException($"Unsupported architecture '{Arch}'") }; private static string GetRegistryName(string repo, string tag) diff --git a/tests/Microsoft.DotNet.Docker.Tests/ImageVersion.cs b/tests/Microsoft.DotNet.Docker.Tests/ImageVersion.cs index 2a29f9762d..be97244230 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/ImageVersion.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/ImageVersion.cs @@ -17,6 +17,7 @@ public readonly record struct ImageVersion public static readonly ImageVersion V13_2 = new(new Version(13, 2), isPreview: false); public static readonly ImageVersion V9_2_Preview = new(new Version(9, 2), isPreview: true); public static readonly ImageVersion V10_0 = new(new Version(10, 0), isPreview: false); + public static readonly ImageVersion V11_0 = new(new Version(11, 0), isPreview: true); public ImageVersion(Version version, bool isPreview) { diff --git a/tests/Microsoft.DotNet.Docker.Tests/OS.cs b/tests/Microsoft.DotNet.Docker.Tests/OS.cs index 79f9c718d2..41eb07f3e4 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/OS.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/OS.cs @@ -33,6 +33,8 @@ public static class OS public const string JammyChiseled = $"{Jammy}{ChiseledSuffix}"; public const string Noble = "noble"; public const string NobleChiseled = $"{Noble}{ChiseledSuffix}"; + public const string Resolute = "resolute"; + public const string ResoluteChiseled = $"{Resolute}{ChiseledSuffix}"; public const string UbuntuChiseled = $"ubuntu{ChiseledSuffix}"; // Windows diff --git a/tests/Microsoft.DotNet.Docker.Tests/ProductImageTests.cs b/tests/Microsoft.DotNet.Docker.Tests/ProductImageTests.cs index 616f765062..f8526a9f56 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/ProductImageTests.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/ProductImageTests.cs @@ -278,7 +278,7 @@ internal static IEnumerable GetExpectedPackages(ProductImageData imageDa { "base-files" }, - _ => throw new NotSupportedException() + _ => throw new NotSupportedException($"Unsupported distroless OS '{imageData.OS}'") }; private static IEnumerable GetRuntimeDepsPackages(ProductImageData imageData) { @@ -313,6 +313,17 @@ private static IEnumerable GetRuntimeDepsPackages(ProductImageData image "openssl", "libstdc++6" ], + { OS: OS.ResoluteChiseled } => + [ + "ca-certificates", + "gcc-14-base", + "gcc-14", + "libc6", + "libgcc-s1", + "libssl3t64", + "openssl", + "libstdc++6" + ], { OS: string os } when os.Contains(OS.Noble) => [ "ca-certificates", @@ -323,6 +334,16 @@ private static IEnumerable GetRuntimeDepsPackages(ProductImageData image "openssl", "libstdc++6" ], + { OS: string os } when os.Contains(OS.Resolute) => + [ + "ca-certificates", + "gcc-14-base", + "libc6", + "libgcc-s1", + "libssl3t64", + "openssl", + "libstdc++6" + ], { OS: string os } when os.Contains(OS.Alpine) => [ "ca-certificates-bundle", @@ -340,7 +361,7 @@ private static IEnumerable GetRuntimeDepsPackages(ProductImageData image "tzdata", "libstdc++6" ], - _ => throw new NotSupportedException() + _ => throw new NotSupportedException($"Unknown runtime-deps packages for OS '{imageData.OS}'") }; // zlib is not required for .NET 9+ @@ -372,6 +393,12 @@ private static string GetZLibPackage(string os) "tzdata-legacy", "tzdata" }, + { OS: OS.ResoluteChiseled } => new[] + { + "libicu76", + "tzdata-legacy", + "tzdata" + }, { OS: OS.JammyChiseled } => new[] { "libicu70", diff --git a/tests/Microsoft.DotNet.Docker.Tests/RuntimeDepsImageTests.cs b/tests/Microsoft.DotNet.Docker.Tests/RuntimeDepsImageTests.cs index 7d38f05bdb..280e33f6a2 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/RuntimeDepsImageTests.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/RuntimeDepsImageTests.cs @@ -38,7 +38,7 @@ public async Task VerifySelfContainedConsoleScenario(ProductImageData imageData) return; } - using ConsoleAppScenario testScenario = + ConsoleAppScenario testScenario = new ConsoleAppScenario.SelfContained(imageData, DockerHelper, OutputHelper); await testScenario.ExecuteAsync(); } @@ -54,8 +54,7 @@ public async Task VerifySelfContainedWebScenario(ProductImageData imageData) return; } - using WebScenario testScenario = - new WebScenario.SelfContained(imageData, DockerHelper, OutputHelper); + WebScenario testScenario = new WebScenario.SelfContained(imageData, DockerHelper, OutputHelper); await testScenario.ExecuteAsync(); } @@ -71,7 +70,7 @@ public async Task VerifyAotWebScenario(ProductImageData imageData) return; } - using WebScenario scenario = new WebScenario.Aot(imageData, DockerHelper, OutputHelper); + WebScenario scenario = new WebScenario.Aot(imageData, DockerHelper, OutputHelper); await scenario.ExecuteAsync(); } diff --git a/tests/Microsoft.DotNet.Docker.Tests/RuntimeImageTests.cs b/tests/Microsoft.DotNet.Docker.Tests/RuntimeImageTests.cs index db792e75de..d370b96dd9 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/RuntimeImageTests.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/RuntimeImageTests.cs @@ -28,8 +28,7 @@ public RuntimeImageTests(ITestOutputHelper outputHelper) [MemberData(nameof(GetImageData))] public async Task VerifyFxDependentAppScenario(ProductImageData imageData) { - using ConsoleAppScenario testScenario = - new ConsoleAppScenario.FxDependent(imageData, DockerHelper, OutputHelper); + ConsoleAppScenario testScenario = new ConsoleAppScenario.FxDependent(imageData, DockerHelper, OutputHelper); await testScenario.ExecuteAsync(); } @@ -37,8 +36,7 @@ public async Task VerifyFxDependentAppScenario(ProductImageData imageData) [MemberData(nameof(GetImageData))] public async Task VerifyTestProjectScenario(ProductImageData imageData) { - using ConsoleAppScenario testScenario = - new ConsoleAppScenario.TestProject(imageData, DockerHelper, OutputHelper); + ConsoleAppScenario testScenario = new ConsoleAppScenario.TestProject(imageData, DockerHelper, OutputHelper); await testScenario.ExecuteAsync(); } diff --git a/tests/Microsoft.DotNet.Docker.Tests/SdkImageTests.cs b/tests/Microsoft.DotNet.Docker.Tests/SdkImageTests.cs index da515ca2d5..4e5ac5222e 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/SdkImageTests.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/SdkImageTests.cs @@ -82,7 +82,7 @@ public async void VerifyBlazorWasmScenario(ProductImageData imageData) useWasmTools = false; } - using BlazorWasmScenario testScenario = new(imageData, DockerHelper, OutputHelper, useWasmTools); + BlazorWasmScenario testScenario = new(imageData, DockerHelper, OutputHelper, useWasmTools); await testScenario.ExecuteAsync(); } diff --git a/tests/Microsoft.DotNet.Docker.Tests/TestData.cs b/tests/Microsoft.DotNet.Docker.Tests/TestData.cs index 1fb291c04a..60cb79f81d 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/TestData.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/TestData.cs @@ -285,6 +285,90 @@ public static class TestData ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, new ProductImageData { Version = V10_0, OS = OS.NobleChiseled, Arch = Arch.Arm, SdkOS = OS.Noble, ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps | DotNetImageRepo.Runtime | DotNetImageRepo.Aspnet }, + + + new ProductImageData { Version = V11_0, OS = OS.Resolute, Arch = Arch.Amd64 }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Amd64, SdkOS = OS.Resolute }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Amd64, SdkOS = OS.Resolute, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Amd64, SdkOS = OS.Resolute, + ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Amd64, SdkOS = OS.Resolute, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps | DotNetImageRepo.Runtime | DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.Alpine322, Arch = Arch.Amd64 }, + new ProductImageData { Version = V11_0, OS = OS.Alpine322, Arch = Arch.Amd64, SdkOS = OS.Alpine322, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.Alpine322, Arch = Arch.Amd64, SdkOS = OS.Alpine322, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps }, + new ProductImageData { Version = V11_0, OS = OS.Alpine323, Arch = Arch.Amd64 }, + new ProductImageData { Version = V11_0, OS = OS.Alpine323, Arch = Arch.Amd64, SdkOS = OS.Alpine323, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.Alpine323, Arch = Arch.Amd64, SdkOS = OS.Alpine323, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux30, Arch = Arch.Amd64 }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux30 }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux30, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps | DotNetImageRepo.Runtime | DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux30, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux30, + ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, + + new() { Version = V11_0, Arch = Arch.Amd64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.Alpine322 }, + new() { Version = V11_0, Arch = Arch.Amd64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.Alpine323 }, + new() { Version = V11_0, Arch = Arch.Amd64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.AzureLinux30Distroless, SdkOS = OS.AzureLinux30 }, + new() { Version = V11_0, Arch = Arch.Amd64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.ResoluteChiseled, SdkOS = OS.Resolute }, + + new ProductImageData { Version = V11_0, OS = OS.AzureLinux30, Arch = Arch.Arm64 }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux30 }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux30, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps | DotNetImageRepo.Runtime | DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux30, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux30, + ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.Resolute, Arch = Arch.Arm64 }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Arm64, SdkOS = OS.Resolute }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Arm64, SdkOS = OS.Resolute, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Arm64, SdkOS = OS.Resolute, + ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Arm64, SdkOS = OS.Resolute, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps | DotNetImageRepo.Runtime | DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.Alpine322, Arch = Arch.Arm64 }, + new ProductImageData { Version = V11_0, OS = OS.Alpine322, Arch = Arch.Arm64, SdkOS = OS.Alpine322, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.Alpine322, Arch = Arch.Arm64, SdkOS = OS.Alpine322, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps }, + new ProductImageData { Version = V11_0, OS = OS.Alpine323, Arch = Arch.Arm64 }, + new ProductImageData { Version = V11_0, OS = OS.Alpine323, Arch = Arch.Arm64, SdkOS = OS.Alpine323, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.Alpine323, Arch = Arch.Arm64, SdkOS = OS.Alpine323, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps }, + + new() { Version = V11_0, Arch = Arch.Arm64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.Alpine322 }, + new() { Version = V11_0, Arch = Arch.Arm64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.Alpine323 }, + new() { Version = V11_0, Arch = Arch.Arm64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.AzureLinux30Distroless, SdkOS = OS.AzureLinux30 }, + new() { Version = V11_0, Arch = Arch.Arm64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.ResoluteChiseled, SdkOS = OS.Resolute }, + + new ProductImageData { Version = V11_0, OS = OS.Alpine322, Arch = Arch.Arm }, + new ProductImageData { Version = V11_0, OS = OS.Alpine322, Arch = Arch.Arm, SdkOS = OS.Alpine322, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.Alpine322, Arch = Arch.Arm, SdkOS = OS.Alpine322, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps }, + new ProductImageData { Version = V11_0, OS = OS.Alpine323, Arch = Arch.Arm }, + new ProductImageData { Version = V11_0, OS = OS.Alpine323, Arch = Arch.Arm, SdkOS = OS.Alpine323, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.Alpine323, Arch = Arch.Arm, SdkOS = OS.Alpine323, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps }, + new ProductImageData { Version = V11_0, OS = OS.Resolute, Arch = Arch.Arm }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Arm, SdkOS = OS.Resolute }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Arm, SdkOS = OS.Resolute, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Arm, SdkOS = OS.Resolute, + ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V11_0, OS = OS.ResoluteChiseled, Arch = Arch.Arm, SdkOS = OS.Resolute, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps | DotNetImageRepo.Runtime | DotNetImageRepo.Aspnet }, }; private static readonly ProductImageData[] s_windowsTestData = @@ -307,6 +391,11 @@ public static class TestData new ProductImageData { Version = V10_0, OS = OS.NanoServerLtsc2025, Arch = Arch.Amd64 }, new ProductImageData { Version = V10_0, OS = OS.ServerCoreLtsc2022, Arch = Arch.Amd64 }, new ProductImageData { Version = V10_0, OS = OS.ServerCoreLtsc2025, Arch = Arch.Amd64 }, + + new ProductImageData { Version = V11_0, OS = OS.NanoServerLtsc2022, Arch = Arch.Amd64 }, + new ProductImageData { Version = V11_0, OS = OS.NanoServerLtsc2025, Arch = Arch.Amd64 }, + new ProductImageData { Version = V11_0, OS = OS.ServerCoreLtsc2022, Arch = Arch.Amd64 }, + new ProductImageData { Version = V11_0, OS = OS.ServerCoreLtsc2025, Arch = Arch.Amd64 }, }; private static readonly SampleImageData[] s_linuxSampleTestData = diff --git a/tests/Microsoft.DotNet.Docker.Tests/TestScenarios/ProjectTemplateTestScenario.cs b/tests/Microsoft.DotNet.Docker.Tests/TestScenarios/ProjectTemplateTestScenario.cs index 217bf39bbe..cc271f9e71 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/TestScenarios/ProjectTemplateTestScenario.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/TestScenarios/ProjectTemplateTestScenario.cs @@ -12,10 +12,8 @@ namespace Microsoft.DotNet.Docker.Tests; -public abstract class ProjectTemplateTestScenario : ITestScenario, IDisposable +public abstract class ProjectTemplateTestScenario : ITestScenario { - private bool _disposed; - protected static string OSDockerfileSuffix { get; } = DockerHelper.IsLinuxContainerModeEnabled ? "linux" : "windows"; protected static string? AdminUser { get; } = DockerHelper.IsLinuxContainerModeEnabled ? "root" : null; protected static string? NonRootUser { get; } = DockerHelper.IsLinuxContainerModeEnabled ? "app" : "ContainerUser"; @@ -23,7 +21,6 @@ public abstract class ProjectTemplateTestScenario : ITestScenario, IDisposable protected DockerHelper DockerHelper { get; } protected ProductImageData ImageData { get; } protected ITestOutputHelper OutputHelper { get; } - protected TestSolution TestSolution { get; } protected virtual bool NonRootUserSupported => DockerHelper.IsLinuxContainerModeEnabled; @@ -44,11 +41,9 @@ public ProjectTemplateTestScenario( DockerHelper = dockerHelper; ImageData = imageData; OutputHelper = outputHelper; - - TestSolution = new(imageData, SampleName, dockerHelper, injectCustomTestCode: InjectCustomTestCode); } - protected string Build(string stageTarget, string[]? customBuildArgs) + private string Build(TestSolution testSolution, string stageTarget, string[]? customBuildArgs) { const string DockerfileName = "Dockerfile"; string dockerfilePath = Path.Combine(DockerHelper.TestArtifactsDir, DockerfileName); @@ -100,7 +95,7 @@ protected string Build(string stageTarget, string[]? customBuildArgs) tag: tag, dockerfile: dockerfilePath, target: stageTarget, - contextDir: TestSolution.SolutionDir, + contextDir: testSolution.SolutionDir, platform: ImageData.Platform, buildArgs: buildArgs.ToArray()); } @@ -117,10 +112,20 @@ protected string Build(string stageTarget, string[]? customBuildArgs) public async Task ExecuteAsync() { + if (ImageData.Version.Major == 11) + { + OutputHelper.WriteLine("Skipping project template test scenario for .NET 11 since project templates are" + + " not updated yet. Re-enable when https://github.com/dotnet/sdk/issues/50295 is resolved."); + return; + } + List tags = []; + TestSolution? testSolution = null; try { + testSolution = new TestSolution(ImageData, SampleName, DockerHelper, InjectCustomTestCode); + OutputHelper.WriteLine( $""" @@ -137,12 +142,12 @@ public async Task ExecuteAsync() string[] customBuildArgs = [ ..CustomDockerBuildArgs, $"rid={ImageData.Rid}" ]; // Build and run app on SDK image - string buildTag = Build(TestDockerfile.BuildStageName, customBuildArgs); + string buildTag = Build(testSolution, TestDockerfile.BuildStageName, customBuildArgs); tags.Add(buildTag); await RunAsync(buildTag, command: "dotnet run --no-restore"); // Build and run app stage - string tag = Build(TestDockerfile.AppStageName, customBuildArgs); + string tag = Build(testSolution, TestDockerfile.AppStageName, customBuildArgs); tags.Add(tag); // Don't run the app if the build output is not executable @@ -158,27 +163,9 @@ public async Task ExecuteAsync() finally { tags.ForEach(DockerHelper.DeleteImage); + testSolution?.Dispose(); } } protected abstract Task RunAsync(string image, string? user = null, string? command = null); - - protected virtual void Dispose(bool disposing) - { - if (!_disposed) - { - if (disposing) - { - TestSolution.Dispose(); - } - - _disposed = true; - } - } - - public void Dispose() - { - Dispose(disposing: true); - GC.SuppressFinalize(this); - } }