diff --git a/README.aspnet.md b/README.aspnet.md index ed999e6f4c..122123960f 100644 --- a/README.aspnet.md +++ b/README.aspnet.md @@ -102,6 +102,7 @@ Tags | Dockerfile | OS Version 9.0.4-azurelinux3.0-distroless-composite-amd64, 9.0-azurelinux3.0-distroless-composite-amd64, 9.0.4-azurelinux3.0-distroless-composite, 9.0-azurelinux3.0-distroless-composite | [Dockerfile](src/aspnet/9.0/azurelinux3.0-distroless-composite/amd64/Dockerfile) | Azure Linux 3.0 9.0.4-azurelinux3.0-distroless-composite-extra-amd64, 9.0-azurelinux3.0-distroless-composite-extra-amd64, 9.0.4-azurelinux3.0-distroless-composite-extra, 9.0-azurelinux3.0-distroless-composite-extra | [Dockerfile](src/aspnet/9.0/azurelinux3.0-distroless-composite-extra/amd64/Dockerfile) | Azure Linux 3.0 8.0.15-bookworm-slim-amd64, 8.0-bookworm-slim-amd64, 8.0.15-bookworm-slim, 8.0-bookworm-slim, 8.0.15, 8.0 | [Dockerfile](src/aspnet/8.0/bookworm-slim/amd64/Dockerfile) | Debian 12 +8.0.15-trixie-slim-amd64, 8.0-trixie-slim-amd64, 8.0.15-trixie-slim, 8.0-trixie-slim | [Dockerfile](src/aspnet/8.0/trixie-slim/amd64/Dockerfile) | Debian 13 8.0.15-alpine3.21-amd64, 8.0-alpine3.21-amd64, 8.0-alpine-amd64, 8.0.15-alpine3.21, 8.0-alpine3.21, 8.0-alpine | [Dockerfile](src/aspnet/8.0/alpine3.21/amd64/Dockerfile) | Alpine 3.21 8.0.15-alpine3.21-composite-amd64, 8.0-alpine3.21-composite-amd64, 8.0-alpine-composite-amd64, 8.0.15-alpine3.21-composite, 8.0-alpine3.21-composite, 8.0-alpine-composite | [Dockerfile](src/aspnet/8.0/alpine3.21-composite/amd64/Dockerfile) | Alpine 3.21 8.0.15-noble-amd64, 8.0-noble-amd64, 8.0.15-noble, 8.0-noble | [Dockerfile](src/aspnet/8.0/noble/amd64/Dockerfile) | Ubuntu 24.04 @@ -162,6 +163,7 @@ Tags | Dockerfile | OS Version 9.0.4-azurelinux3.0-distroless-composite-arm64v8, 9.0-azurelinux3.0-distroless-composite-arm64v8, 9.0.4-azurelinux3.0-distroless-composite, 9.0-azurelinux3.0-distroless-composite | [Dockerfile](src/aspnet/9.0/azurelinux3.0-distroless-composite/arm64v8/Dockerfile) | Azure Linux 3.0 9.0.4-azurelinux3.0-distroless-composite-extra-arm64v8, 9.0-azurelinux3.0-distroless-composite-extra-arm64v8, 9.0.4-azurelinux3.0-distroless-composite-extra, 9.0-azurelinux3.0-distroless-composite-extra | [Dockerfile](src/aspnet/9.0/azurelinux3.0-distroless-composite-extra/arm64v8/Dockerfile) | Azure Linux 3.0 8.0.15-bookworm-slim-arm64v8, 8.0-bookworm-slim-arm64v8, 8.0.15-bookworm-slim, 8.0-bookworm-slim, 8.0.15, 8.0 | [Dockerfile](src/aspnet/8.0/bookworm-slim/arm64v8/Dockerfile) | Debian 12 +8.0.15-trixie-slim-arm64v8, 8.0-trixie-slim-arm64v8, 8.0.15-trixie-slim, 8.0-trixie-slim | [Dockerfile](src/aspnet/8.0/trixie-slim/arm64v8/Dockerfile) | Debian 13 8.0.15-alpine3.21-arm64v8, 8.0-alpine3.21-arm64v8, 8.0-alpine-arm64v8, 8.0.15-alpine3.21, 8.0-alpine3.21, 8.0-alpine | [Dockerfile](src/aspnet/8.0/alpine3.21/arm64v8/Dockerfile) | Alpine 3.21 8.0.15-alpine3.21-composite-arm64v8, 8.0-alpine3.21-composite-arm64v8, 8.0-alpine-composite-arm64v8, 8.0.15-alpine3.21-composite, 8.0-alpine3.21-composite, 8.0-alpine-composite | [Dockerfile](src/aspnet/8.0/alpine3.21-composite/arm64v8/Dockerfile) | Alpine 3.21 8.0.15-noble-arm64v8, 8.0-noble-arm64v8, 8.0.15-noble, 8.0-noble | [Dockerfile](src/aspnet/8.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 diff --git a/README.runtime-deps.md b/README.runtime-deps.md index a9ef3f8550..8aae81bdc0 100644 --- a/README.runtime-deps.md +++ b/README.runtime-deps.md @@ -79,6 +79,7 @@ Tags | Dockerfile | OS Version 9.0.4-azurelinux3.0-distroless-amd64, 9.0-azurelinux3.0-distroless-amd64, 9.0.4-azurelinux3.0-distroless, 9.0-azurelinux3.0-distroless | [Dockerfile](src/runtime-deps/9.0/azurelinux3.0-distroless/amd64/Dockerfile) | Azure Linux 3.0 9.0.4-azurelinux3.0-distroless-extra-amd64, 9.0-azurelinux3.0-distroless-extra-amd64, 9.0.4-azurelinux3.0-distroless-extra, 9.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime-deps/9.0/azurelinux3.0-distroless-extra/amd64/Dockerfile) | Azure Linux 3.0 8.0.15-bookworm-slim-amd64, 8.0-bookworm-slim-amd64, 8.0.15-bookworm-slim, 8.0-bookworm-slim, 8.0.15, 8.0 | [Dockerfile](src/runtime-deps/8.0/bookworm-slim/amd64/Dockerfile) | Debian 12 +8.0.15-trixie-slim-amd64, 8.0-trixie-slim-amd64, 8.0.15-trixie-slim, 8.0-trixie-slim | [Dockerfile](src/runtime-deps/8.0/trixie-slim/amd64/Dockerfile) | Debian 13 8.0.15-alpine3.21-amd64, 8.0-alpine3.21-amd64, 8.0-alpine-amd64, 8.0.15-alpine3.21, 8.0-alpine3.21, 8.0-alpine | [Dockerfile](src/runtime-deps/8.0/alpine3.21/amd64/Dockerfile) | Alpine 3.21 8.0.15-alpine3.21-extra-amd64, 8.0-alpine3.21-extra-amd64, 8.0-alpine-extra-amd64, 8.0.15-alpine3.21-extra, 8.0-alpine3.21-extra, 8.0-alpine-extra | [Dockerfile](src/runtime-deps/8.0/alpine3.21-extra/amd64/Dockerfile) | Alpine 3.21 8.0.15-noble-amd64, 8.0-noble-amd64, 8.0.15-noble, 8.0-noble | [Dockerfile](src/runtime-deps/8.0/noble/amd64/Dockerfile) | Ubuntu 24.04 @@ -123,6 +124,7 @@ Tags | Dockerfile | OS Version 9.0.4-azurelinux3.0-distroless-arm64v8, 9.0-azurelinux3.0-distroless-arm64v8, 9.0.4-azurelinux3.0-distroless, 9.0-azurelinux3.0-distroless | [Dockerfile](src/runtime-deps/9.0/azurelinux3.0-distroless/arm64v8/Dockerfile) | Azure Linux 3.0 9.0.4-azurelinux3.0-distroless-extra-arm64v8, 9.0-azurelinux3.0-distroless-extra-arm64v8, 9.0.4-azurelinux3.0-distroless-extra, 9.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime-deps/9.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 3.0 8.0.15-bookworm-slim-arm64v8, 8.0-bookworm-slim-arm64v8, 8.0.15-bookworm-slim, 8.0-bookworm-slim, 8.0.15, 8.0 | [Dockerfile](src/runtime-deps/8.0/bookworm-slim/arm64v8/Dockerfile) | Debian 12 +8.0.15-trixie-slim-arm64v8, 8.0-trixie-slim-arm64v8, 8.0.15-trixie-slim, 8.0-trixie-slim | [Dockerfile](src/runtime-deps/8.0/trixie-slim/arm64v8/Dockerfile) | Debian 13 8.0.15-alpine3.21-arm64v8, 8.0-alpine3.21-arm64v8, 8.0-alpine-arm64v8, 8.0.15-alpine3.21, 8.0-alpine3.21, 8.0-alpine | [Dockerfile](src/runtime-deps/8.0/alpine3.21/arm64v8/Dockerfile) | Alpine 3.21 8.0.15-alpine3.21-extra-arm64v8, 8.0-alpine3.21-extra-arm64v8, 8.0-alpine-extra-arm64v8, 8.0.15-alpine3.21-extra, 8.0-alpine3.21-extra, 8.0-alpine-extra | [Dockerfile](src/runtime-deps/8.0/alpine3.21-extra/arm64v8/Dockerfile) | Alpine 3.21 8.0.15-noble-arm64v8, 8.0-noble-arm64v8, 8.0.15-noble, 8.0-noble | [Dockerfile](src/runtime-deps/8.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 diff --git a/README.runtime.md b/README.runtime.md index 0a9a50c2aa..dfc0dc221e 100644 --- a/README.runtime.md +++ b/README.runtime.md @@ -86,6 +86,7 @@ Tags | Dockerfile | OS Version 9.0.4-azurelinux3.0-distroless-amd64, 9.0-azurelinux3.0-distroless-amd64, 9.0.4-azurelinux3.0-distroless, 9.0-azurelinux3.0-distroless | [Dockerfile](src/runtime/9.0/azurelinux3.0-distroless/amd64/Dockerfile) | Azure Linux 3.0 9.0.4-azurelinux3.0-distroless-extra-amd64, 9.0-azurelinux3.0-distroless-extra-amd64, 9.0.4-azurelinux3.0-distroless-extra, 9.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime/9.0/azurelinux3.0-distroless-extra/amd64/Dockerfile) | Azure Linux 3.0 8.0.15-bookworm-slim-amd64, 8.0-bookworm-slim-amd64, 8.0.15-bookworm-slim, 8.0-bookworm-slim, 8.0.15, 8.0 | [Dockerfile](src/runtime/8.0/bookworm-slim/amd64/Dockerfile) | Debian 12 +8.0.15-trixie-slim-amd64, 8.0-trixie-slim-amd64, 8.0.15-trixie-slim, 8.0-trixie-slim | [Dockerfile](src/runtime/8.0/trixie-slim/amd64/Dockerfile) | Debian 13 8.0.15-alpine3.21-amd64, 8.0-alpine3.21-amd64, 8.0-alpine-amd64, 8.0.15-alpine3.21, 8.0-alpine3.21, 8.0-alpine | [Dockerfile](src/runtime/8.0/alpine3.21/amd64/Dockerfile) | Alpine 3.21 8.0.15-noble-amd64, 8.0-noble-amd64, 8.0.15-noble, 8.0-noble | [Dockerfile](src/runtime/8.0/noble/amd64/Dockerfile) | Ubuntu 24.04 8.0.15-noble-chiseled-amd64, 8.0-noble-chiseled-amd64, 8.0.15-noble-chiseled, 8.0-noble-chiseled | [Dockerfile](src/runtime/8.0/noble-chiseled/amd64/Dockerfile) | Ubuntu 24.04 @@ -127,6 +128,7 @@ Tags | Dockerfile | OS Version 9.0.4-azurelinux3.0-distroless-arm64v8, 9.0-azurelinux3.0-distroless-arm64v8, 9.0.4-azurelinux3.0-distroless, 9.0-azurelinux3.0-distroless | [Dockerfile](src/runtime/9.0/azurelinux3.0-distroless/arm64v8/Dockerfile) | Azure Linux 3.0 9.0.4-azurelinux3.0-distroless-extra-arm64v8, 9.0-azurelinux3.0-distroless-extra-arm64v8, 9.0.4-azurelinux3.0-distroless-extra, 9.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime/9.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 3.0 8.0.15-bookworm-slim-arm64v8, 8.0-bookworm-slim-arm64v8, 8.0.15-bookworm-slim, 8.0-bookworm-slim, 8.0.15, 8.0 | [Dockerfile](src/runtime/8.0/bookworm-slim/arm64v8/Dockerfile) | Debian 12 +8.0.15-trixie-slim-arm64v8, 8.0-trixie-slim-arm64v8, 8.0.15-trixie-slim, 8.0-trixie-slim | [Dockerfile](src/runtime/8.0/trixie-slim/arm64v8/Dockerfile) | Debian 13 8.0.15-alpine3.21-arm64v8, 8.0-alpine3.21-arm64v8, 8.0-alpine-arm64v8, 8.0.15-alpine3.21, 8.0-alpine3.21, 8.0-alpine | [Dockerfile](src/runtime/8.0/alpine3.21/arm64v8/Dockerfile) | Alpine 3.21 8.0.15-noble-arm64v8, 8.0-noble-arm64v8, 8.0.15-noble, 8.0-noble | [Dockerfile](src/runtime/8.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 8.0.15-noble-chiseled-arm64v8, 8.0-noble-chiseled-arm64v8, 8.0.15-noble-chiseled, 8.0-noble-chiseled | [Dockerfile](src/runtime/8.0/noble-chiseled/arm64v8/Dockerfile) | Ubuntu 24.04 diff --git a/README.sdk.md b/README.sdk.md index e8ae53a90e..57479d41bf 100644 --- a/README.sdk.md +++ b/README.sdk.md @@ -78,6 +78,7 @@ Tags | Dockerfile | OS Version 9.0.203-noble-amd64, 9.0-noble-amd64, 9.0.203-noble, 9.0-noble | [Dockerfile](src/sdk/9.0/noble/amd64/Dockerfile) | Ubuntu 24.04 9.0.203-azurelinux3.0-amd64, 9.0-azurelinux3.0-amd64, 9.0.203-azurelinux3.0, 9.0-azurelinux3.0 | [Dockerfile](src/sdk/9.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 8.0.408-bookworm-slim-amd64, 8.0-bookworm-slim-amd64, 8.0.408-bookworm-slim, 8.0-bookworm-slim, 8.0.408, 8.0 | [Dockerfile](src/sdk/8.0/bookworm-slim/amd64/Dockerfile) | Debian 12 +8.0.408-trixie-slim-amd64, 8.0-trixie-slim-amd64, 8.0.408-trixie-slim, 8.0-trixie-slim | [Dockerfile](src/sdk/8.0/trixie-slim/amd64/Dockerfile) | Debian 13 8.0.408-alpine3.21-amd64, 8.0-alpine3.21-amd64, 8.0-alpine-amd64, 8.0.408-alpine3.21, 8.0-alpine3.21, 8.0-alpine | [Dockerfile](src/sdk/8.0/alpine3.21/amd64/Dockerfile) | Alpine 3.21 8.0.408-noble-amd64, 8.0-noble-amd64, 8.0.408-noble, 8.0-noble | [Dockerfile](src/sdk/8.0/noble/amd64/Dockerfile) | Ubuntu 24.04 8.0.408-jammy-amd64, 8.0-jammy-amd64, 8.0.408-jammy, 8.0-jammy | [Dockerfile](src/sdk/8.0/jammy/amd64/Dockerfile) | Ubuntu 22.04 @@ -107,6 +108,7 @@ Tags | Dockerfile | OS Version 9.0.203-noble-arm64v8, 9.0-noble-arm64v8, 9.0.203-noble, 9.0-noble | [Dockerfile](src/sdk/9.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 9.0.203-azurelinux3.0-arm64v8, 9.0-azurelinux3.0-arm64v8, 9.0.203-azurelinux3.0, 9.0-azurelinux3.0 | [Dockerfile](src/sdk/9.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 8.0.408-bookworm-slim-arm64v8, 8.0-bookworm-slim-arm64v8, 8.0.408-bookworm-slim, 8.0-bookworm-slim, 8.0.408, 8.0 | [Dockerfile](src/sdk/8.0/bookworm-slim/arm64v8/Dockerfile) | Debian 12 +8.0.408-trixie-slim-arm64v8, 8.0-trixie-slim-arm64v8, 8.0.408-trixie-slim, 8.0-trixie-slim | [Dockerfile](src/sdk/8.0/trixie-slim/arm64v8/Dockerfile) | Debian 13 8.0.408-alpine3.21-arm64v8, 8.0-alpine3.21-arm64v8, 8.0-alpine-arm64v8, 8.0.408-alpine3.21, 8.0-alpine3.21, 8.0-alpine | [Dockerfile](src/sdk/8.0/alpine3.21/arm64v8/Dockerfile) | Alpine 3.21 8.0.408-noble-arm64v8, 8.0-noble-arm64v8, 8.0.408-noble, 8.0-noble | [Dockerfile](src/sdk/8.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 8.0.408-jammy-arm64v8, 8.0-jammy-arm64v8, 8.0.408-jammy, 8.0-jammy | [Dockerfile](src/sdk/8.0/jammy/arm64v8/Dockerfile) | Ubuntu 22.04 diff --git a/eng/mcr-tags-metadata-templates/aspnet-tags.yml b/eng/mcr-tags-metadata-templates/aspnet-tags.yml index 525ff1f0ce..2051a5fdcd 100644 --- a/eng/mcr-tags-metadata-templates/aspnet-tags.yml +++ b/eng/mcr-tags-metadata-templates/aspnet-tags.yml @@ -27,6 +27,7 @@ $(McrTagsYmlTagGroup:9.0-azurelinux3.0-distroless-extra) $(McrTagsYmlTagGroup:9.0-azurelinux3.0-distroless-composite) $(McrTagsYmlTagGroup:9.0-azurelinux3.0-distroless-composite-extra) $(McrTagsYmlTagGroup:8.0-bookworm-slim) +$(McrTagsYmlTagGroup:8.0-trixie-slim) $(McrTagsYmlTagGroup:8.0-alpine3.21) $(McrTagsYmlTagGroup:8.0-alpine3.21-composite) $(McrTagsYmlTagGroup:8.0-noble) diff --git a/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml b/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml index 04e37fb911..8217cfa301 100644 --- a/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml +++ b/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml @@ -19,6 +19,7 @@ $(McrTagsYmlTagGroup:9.0-azurelinux3.0) $(McrTagsYmlTagGroup:9.0-azurelinux3.0-distroless) $(McrTagsYmlTagGroup:9.0-azurelinux3.0-distroless-extra) $(McrTagsYmlTagGroup:8.0-bookworm-slim) +$(McrTagsYmlTagGroup:8.0-trixie-slim) $(McrTagsYmlTagGroup:8.0-alpine3.21) $(McrTagsYmlTagGroup:8.0-alpine3.21-extra) $(McrTagsYmlTagGroup:8.0-noble) diff --git a/eng/mcr-tags-metadata-templates/runtime-tags.yml b/eng/mcr-tags-metadata-templates/runtime-tags.yml index aead02c8e6..e7727057d4 100644 --- a/eng/mcr-tags-metadata-templates/runtime-tags.yml +++ b/eng/mcr-tags-metadata-templates/runtime-tags.yml @@ -17,6 +17,7 @@ $(McrTagsYmlTagGroup:9.0-azurelinux3.0) $(McrTagsYmlTagGroup:9.0-azurelinux3.0-distroless) $(McrTagsYmlTagGroup:9.0-azurelinux3.0-distroless-extra) $(McrTagsYmlTagGroup:8.0-bookworm-slim) +$(McrTagsYmlTagGroup:8.0-trixie-slim) $(McrTagsYmlTagGroup:8.0-alpine3.21) $(McrTagsYmlTagGroup:8.0-noble) $(McrTagsYmlTagGroup:8.0-noble-chiseled) diff --git a/eng/mcr-tags-metadata-templates/sdk-tags.yml b/eng/mcr-tags-metadata-templates/sdk-tags.yml index 0cebda3a8d..de82ff4854 100644 --- a/eng/mcr-tags-metadata-templates/sdk-tags.yml +++ b/eng/mcr-tags-metadata-templates/sdk-tags.yml @@ -13,6 +13,7 @@ $(McrTagsYmlTagGroup:9.0-alpine3.21) $(McrTagsYmlTagGroup:9.0-noble) $(McrTagsYmlTagGroup:9.0-azurelinux3.0) $(McrTagsYmlTagGroup:8.0-bookworm-slim) +$(McrTagsYmlTagGroup:8.0-trixie-slim) $(McrTagsYmlTagGroup:8.0-alpine3.21) $(McrTagsYmlTagGroup:8.0-noble) $(McrTagsYmlTagGroup:8.0-jammy) diff --git a/manifest.json b/manifest.json index ae9becfff1..386a8a8994 100644 --- a/manifest.json +++ b/manifest.json @@ -78,6 +78,37 @@ } ] }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-trixie-slim": {}, + "$(dotnet|8.0|minor-tag)-trixie-slim": {} + }, + "platforms": [ + { + "dockerfile": "src/runtime-deps/8.0/trixie-slim/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", + "os": "linux", + "osVersion": "trixie-slim", + "tags": { + "$(dotnet|8.0|fixed-tag)-trixie-slim-amd64": {}, + "$(dotnet|8.0|minor-tag)-trixie-slim-amd64": {} + } + }, + { + "architecture": "arm64", + "dockerfile": "src/runtime-deps/8.0/trixie-slim/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", + "os": "linux", + "osVersion": "trixie-slim", + "tags": { + "$(dotnet|8.0|fixed-tag)-trixie-slim-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-trixie-slim-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { @@ -2128,6 +2159,43 @@ } ] }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-trixie-slim": {}, + "$(dotnet|8.0|minor-tag)-trixie-slim": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/trixie-slim/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "trixie-slim", + "tags": { + "$(dotnet|8.0|fixed-tag)-trixie-slim-amd64": {}, + "$(dotnet|8.0|minor-tag)-trixie-slim-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/8.0/trixie-slim/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "trixie-slim", + "tags": { + "$(dotnet|8.0|fixed-tag)-trixie-slim-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-trixie-slim-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { @@ -4290,6 +4358,43 @@ } ] }, + { + "productVersion": "$(dotnet|8.0|product-version)", + "sharedTags": { + "$(dotnet|8.0|fixed-tag)-trixie-slim": {}, + "$(dotnet|8.0|minor-tag)-trixie-slim": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/8.0/trixie-slim/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "trixie-slim", + "tags": { + "$(dotnet|8.0|fixed-tag)-trixie-slim-amd64": {}, + "$(dotnet|8.0|minor-tag)-trixie-slim-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/8.0/trixie-slim/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "trixie-slim", + "tags": { + "$(dotnet|8.0|fixed-tag)-trixie-slim-arm64v8": {}, + "$(dotnet|8.0|minor-tag)-trixie-slim-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(dotnet|8.0|product-version)", "sharedTags": { @@ -7602,6 +7707,43 @@ } ] }, + { + "productVersion": "$(sdk|8.0|product-version)", + "sharedTags": { + "$(sdk|8.0|fixed-tag)-trixie-slim": {}, + "$(sdk|8.0|minor-tag)-trixie-slim": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "dockerfile": "src/sdk/8.0/trixie-slim/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "trixie-slim", + "tags": { + "$(sdk|8.0|fixed-tag)-trixie-slim-amd64": {}, + "$(sdk|8.0|minor-tag)-trixie-slim-amd64": {} + } + }, + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "architecture": "arm64", + "dockerfile": "src/sdk/8.0/trixie-slim/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "trixie-slim", + "tags": { + "$(sdk|8.0|fixed-tag)-trixie-slim-arm64v8": {}, + "$(sdk|8.0|minor-tag)-trixie-slim-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(sdk|8.0|product-version)", "sharedTags": { diff --git a/src/aspnet/8.0/trixie-slim/amd64/Dockerfile b/src/aspnet/8.0/trixie-slim/amd64/Dockerfile new file mode 100644 index 0000000000..b24b9fa4b8 --- /dev/null +++ b/src/aspnet/8.0/trixie-slim/amd64/Dockerfile @@ -0,0 +1,22 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM amd64/buildpack-deps:trixie-curl AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=8.0.15 \ + && curl -fSL --output aspnetcore.tar.gz https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + && aspnetcore_sha512='3ca5669d4aff60f1bf8cecb99de05d6b489db150caa7c184d1a8bcdf085c611533e05ad7bd0c5091c726850611cff6b0477ef9b1dbb192ebe9055c03de1cf6d8' \ + && echo "$aspnetcore_sha512 aspnetcore.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf aspnetcore.tar.gz -C /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm aspnetcore.tar.gz + + +# ASP.NET Core image +FROM $REPO:8.0.15-trixie-slim-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=8.0.15 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/8.0/trixie-slim/arm64v8/Dockerfile b/src/aspnet/8.0/trixie-slim/arm64v8/Dockerfile new file mode 100644 index 0000000000..437834d769 --- /dev/null +++ b/src/aspnet/8.0/trixie-slim/arm64v8/Dockerfile @@ -0,0 +1,22 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm64v8/buildpack-deps:trixie-curl AS installer + +# Retrieve ASP.NET Core +RUN aspnetcore_version=8.0.15 \ + && curl -fSL --output aspnetcore.tar.gz https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + && aspnetcore_sha512='967d43a9387d226ed804cfee35144a69f249f6206b73ed0d8915dad358fede3c5ddc3ec963a5c35400b62dc57265da1dbc07d793cf5e3940ce94e54783312f0e' \ + && echo "$aspnetcore_sha512 aspnetcore.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf aspnetcore.tar.gz -C /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm aspnetcore.tar.gz + + +# ASP.NET Core image +FROM $REPO:8.0.15-trixie-slim-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=8.0.15 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/runtime-deps/8.0/trixie-slim/amd64/Dockerfile b/src/runtime-deps/8.0/trixie-slim/amd64/Dockerfile new file mode 100644 index 0000000000..042e67dcd2 --- /dev/null +++ b/src/runtime-deps/8.0/trixie-slim/amd64/Dockerfile @@ -0,0 +1,33 @@ +FROM amd64/debian:trixie-slim + +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 \ + zlib1g \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user and group +RUN groupadd \ + --gid=$APP_UID \ + app \ + && useradd -l \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app diff --git a/src/runtime-deps/8.0/trixie-slim/arm64v8/Dockerfile b/src/runtime-deps/8.0/trixie-slim/arm64v8/Dockerfile new file mode 100644 index 0000000000..a51b839100 --- /dev/null +++ b/src/runtime-deps/8.0/trixie-slim/arm64v8/Dockerfile @@ -0,0 +1,33 @@ +FROM arm64v8/debian:trixie-slim + +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 \ + zlib1g \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user and group +RUN groupadd \ + --gid=$APP_UID \ + app \ + && useradd -l \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app diff --git a/src/runtime/8.0/trixie-slim/amd64/Dockerfile b/src/runtime/8.0/trixie-slim/amd64/Dockerfile new file mode 100644 index 0000000000..49e1647fad --- /dev/null +++ b/src/runtime/8.0/trixie-slim/amd64/Dockerfile @@ -0,0 +1,24 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:trixie-curl AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=8.0.15 \ + && curl -fSL --output dotnet.tar.gz https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + && dotnet_sha512='833a848541ba6f71c8792168914856e16de6f71cf0a481c5990f3622b0e3f83123e6024bcabf6b955a7c92e8e904181d40d3bd612595a0d8c47a421267a91ca6' \ + && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf dotnet.tar.gz -C /dotnet \ + && rm dotnet.tar.gz + + +# .NET runtime image +FROM $REPO:8.0.15-trixie-slim-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=8.0.15 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/8.0/trixie-slim/arm64v8/Dockerfile b/src/runtime/8.0/trixie-slim/arm64v8/Dockerfile new file mode 100644 index 0000000000..b6b3533b4e --- /dev/null +++ b/src/runtime/8.0/trixie-slim/arm64v8/Dockerfile @@ -0,0 +1,24 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:trixie-curl AS installer + +# Retrieve .NET Runtime +RUN dotnet_version=8.0.15 \ + && curl -fSL --output dotnet.tar.gz https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + && dotnet_sha512='f63359a5da4798f8fdfbf0beefd0aa9cd69d5953b2629bc1c68ecc67083572fa9370a89c18e3b4bdc23671df657da756ec6306951f5cadf20062a8bd77ea400c' \ + && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf dotnet.tar.gz -C /dotnet \ + && rm dotnet.tar.gz + + +# .NET runtime image +FROM $REPO:8.0.15-trixie-slim-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=8.0.15 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/sdk/8.0/trixie-slim/amd64/Dockerfile b/src/sdk/8.0/trixie-slim/amd64/Dockerfile new file mode 100644 index 0000000000..8054a1b702 --- /dev/null +++ b/src/sdk/8.0/trixie-slim/amd64/Dockerfile @@ -0,0 +1,56 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM amd64/buildpack-deps:trixie-curl AS installer + +# Install .NET SDK +RUN curl -fSL --output dotnet.tar.gz https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.408/dotnet-sdk-8.0.408-linux-x64.tar.gz \ + && dotnet_sha512='a9a1e54d10a37f91e1bd9b2e9e8ce6ed31917559898e4d6d36296bd5324f67cc7a13a9106703003cbebc5a7ee50188747ba816f5d828c0cb3a4a9f9920ebac4a' \ + && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf dotnet.tar.gz -C /dotnet ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm dotnet.tar.gz + + +# .NET SDK image +FROM $REPO:8.0.15-trixie-slim-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=8.0.408 \ + # 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-Debian-13 + +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"] + +# Trigger first run experience by running arbitrary cmd +RUN dotnet help + +# Install PowerShell global tool +RUN powershell_version=7.4.7 \ + && curl -fSL --output PowerShell.Linux.x64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.x64.$powershell_version.nupkg \ + && powershell_sha512='3f4ff718b982b5cbcbc3ceef2602f681af8029e716aa00a65e60edd81c94fcea3d2e4d6c6f18b5f3cadfba2558f70dbe810397c6bf73757d132ec7bec77dfdba' \ + && echo "$powershell_sha512 PowerShell.Linux.x64.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir -p /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/8.0/trixie-slim/arm64v8/Dockerfile b/src/sdk/8.0/trixie-slim/arm64v8/Dockerfile new file mode 100644 index 0000000000..bead8099b3 --- /dev/null +++ b/src/sdk/8.0/trixie-slim/arm64v8/Dockerfile @@ -0,0 +1,56 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM arm64v8/buildpack-deps:trixie-curl AS installer + +# Install .NET SDK +RUN curl -fSL --output dotnet.tar.gz https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.408/dotnet-sdk-8.0.408-linux-arm64.tar.gz \ + && dotnet_sha512='99a03d7105c14614a1a8d69673a9278315ec762096b302c7632745b3890a6d2d801df7c1f185257c9af0374ae840b942a8b60dde0eace68abec0b6962fd9213c' \ + && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf dotnet.tar.gz -C /dotnet ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm dotnet.tar.gz + + +# .NET SDK image +FROM $REPO:8.0.15-trixie-slim-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=8.0.408 \ + # 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-Debian-13-arm64 + +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"] + +# Trigger first run experience by running arbitrary cmd +RUN dotnet help + +# Install PowerShell global tool +RUN powershell_version=7.4.7 \ + && curl -fSL --output PowerShell.Linux.arm64.$powershell_version.nupkg https://powershellinfraartifacts-gkhedzdeaghdezhr.z01.azurefd.net/tool/$powershell_version/PowerShell.Linux.arm64.$powershell_version.nupkg \ + && powershell_sha512='6c72dfc5bcbac7b135e5152d0ec599e9f639255ff3be2c28eb64015e6df948b2a9c216fc2bd9b26b876a11e32182adad249b88551dd650a4342f5ac2fbed56d6' \ + && echo "$powershell_sha512 PowerShell.Linux.arm64.$powershell_version.nupkg" | sha512sum -c - \ + && mkdir -p /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/aspnet-8.0-trixie-slim-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-8.0-trixie-slim-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..d83deb70e7 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-8.0-trixie-slim-amd64-Dockerfile.approved.txt @@ -0,0 +1,24 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM amd64/buildpack-deps:trixie-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl -u :$ACCESSTOKEN --basic -fSL --output aspnetcore.tar.gz "https://artifacts.visualstudio.com/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz" \ + && aspnetcore_sha512='{sha512_placeholder}' \ + && echo "$aspnetcore_sha512 aspnetcore.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf aspnetcore.tar.gz -C /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm aspnetcore.tar.gz + + +# ASP.NET Core image +FROM $REPO:0.0.0-trixie-slim-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-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..c54a64c978 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,24 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM arm64v8/buildpack-deps:trixie-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && curl -u :$ACCESSTOKEN --basic -fSL --output aspnetcore.tar.gz "https://artifacts.visualstudio.com/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz" \ + && aspnetcore_sha512='{sha512_placeholder}' \ + && echo "$aspnetcore_sha512 aspnetcore.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf aspnetcore.tar.gz -C /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm aspnetcore.tar.gz + + +# ASP.NET Core image +FROM $REPO:0.0.0-trixie-slim-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/runtime-8.0-trixie-slim-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-8.0-trixie-slim-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..2842373ca2 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-8.0-trixie-slim-amd64-Dockerfile.approved.txt @@ -0,0 +1,26 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM amd64/buildpack-deps:trixie-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl -u :$ACCESSTOKEN --basic -fSL --output dotnet.tar.gz "https://artifacts.visualstudio.com/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz" \ + && dotnet_sha512='{sha512_placeholder}' \ + && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf dotnet.tar.gz -C /dotnet \ + && rm dotnet.tar.gz + + +# .NET runtime image +FROM $REPO:0.0.0-trixie-slim-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-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..6b2e453a43 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,26 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM arm64v8/buildpack-deps:trixie-curl AS installer + +ARG ACCESSTOKEN + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && curl -u :$ACCESSTOKEN --basic -fSL --output dotnet.tar.gz "https://artifacts.visualstudio.com/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz" \ + && dotnet_sha512='{sha512_placeholder}' \ + && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf dotnet.tar.gz -C /dotnet \ + && rm dotnet.tar.gz + + +# .NET runtime image +FROM $REPO:0.0.0-trixie-slim-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-deps-8.0-trixie-slim-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-8.0-trixie-slim-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..042e67dcd2 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-8.0-trixie-slim-amd64-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +FROM amd64/debian:trixie-slim + +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 \ + zlib1g \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user and group +RUN groupadd \ + --gid=$APP_UID \ + app \ + && useradd -l \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..a51b839100 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +FROM arm64v8/debian:trixie-slim + +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 \ + zlib1g \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user and group +RUN groupadd \ + --gid=$APP_UID \ + app \ + && useradd -l \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-8.0-trixie-slim-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-8.0-trixie-slim-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..d06ffcb866 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-8.0-trixie-slim-amd64-Dockerfile.approved.txt @@ -0,0 +1,58 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM amd64/buildpack-deps:trixie-curl AS installer + +ARG ACCESSTOKEN + +# Install .NET SDK +RUN curl -u :$ACCESSTOKEN --basic -fSL --output dotnet.tar.gz "https://artifacts.visualstudio.com/Sdk/0.0.0/dotnet-sdk-0.0.0-linux-x64.tar.gz" \ + && dotnet_sha512='{sha512_placeholder}' \ + && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf dotnet.tar.gz -C /dotnet ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm dotnet.tar.gz + + +# .NET SDK image +FROM $REPO:0.0.0-trixie-slim-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-Debian-13 + +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"] + +# Trigger first run experience by running arbitrary cmd +RUN dotnet help + +# Install PowerShell global tool +RUN powershell_version=0.0.0 \ + && curl -fSL --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 -p /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-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..78fbc41239 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-8.0-trixie-slim-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,58 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM arm64v8/buildpack-deps:trixie-curl AS installer + +ARG ACCESSTOKEN + +# Install .NET SDK +RUN curl -u :$ACCESSTOKEN --basic -fSL --output dotnet.tar.gz "https://artifacts.visualstudio.com/Sdk/0.0.0/dotnet-sdk-0.0.0-linux-arm64.tar.gz" \ + && dotnet_sha512='{sha512_placeholder}' \ + && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ + && mkdir -p /dotnet \ + && tar -oxzf dotnet.tar.gz -C /dotnet ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm dotnet.tar.gz + + +# .NET SDK image +FROM $REPO:0.0.0-trixie-slim-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-Debian-13-arm64 + +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"] + +# Trigger first run experience by running arbitrary cmd +RUN dotnet help + +# Install PowerShell global tool +RUN powershell_version=0.0.0 \ + && curl -fSL --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 -p /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/TestData.cs b/tests/Microsoft.DotNet.Docker.Tests/TestData.cs index fe9199a1fe..767e563c8a 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/TestData.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/TestData.cs @@ -15,6 +15,7 @@ public static class TestData private static readonly ProductImageData[] s_linuxTestData = { new ProductImageData { Version = V8_0, OS = OS.BookwormSlim, Arch = Arch.Amd64 }, + new ProductImageData { Version = V8_0, OS = OS.TrixieSlim, Arch = Arch.Amd64 }, new ProductImageData { Version = V8_0, OS = OS.Jammy, Arch = Arch.Amd64 }, new ProductImageData { Version = V8_0, OS = OS.JammyChiseled, Arch = Arch.Amd64, SdkOS = OS.Jammy }, new ProductImageData { Version = V8_0, OS = OS.JammyChiseled, Arch = Arch.Amd64, SdkOS = OS.Jammy }, @@ -72,6 +73,7 @@ public static class TestData new ProductImageData { Version = V8_0, OS = OS.Mariner20Distroless, Arch = Arch.Arm64, SdkOS = OS.Mariner20, ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, new ProductImageData { Version = V8_0, OS = OS.BookwormSlim, Arch = Arch.Arm64 }, + new ProductImageData { Version = V8_0, OS = OS.TrixieSlim, Arch = Arch.Arm64 }, new ProductImageData { Version = V8_0, OS = OS.Jammy, Arch = Arch.Arm64 }, new ProductImageData { Version = V8_0, OS = OS.JammyChiseled, Arch = Arch.Arm64, SdkOS = OS.Jammy }, new ProductImageData { Version = V8_0, OS = OS.JammyChiseled, Arch = Arch.Arm64, SdkOS = OS.Jammy, diff --git a/tests/performance/ImageSize.nightly.linux.json b/tests/performance/ImageSize.nightly.linux.json index cd97a9e3d7..2873799123 100644 --- a/tests/performance/ImageSize.nightly.linux.json +++ b/tests/performance/ImageSize.nightly.linux.json @@ -3,6 +3,8 @@ "src/runtime-deps/8.0/bookworm-slim/amd64": 122238983, "src/runtime-deps/8.0/bookworm-slim/arm32v7": 97861952, "src/runtime-deps/8.0/bookworm-slim/arm64v8": 144762223, + "src/runtime-deps/8.0/trixie-slim/amd64": 122238983, + "src/runtime-deps/8.0/trixie-slim/arm64v8": 144762223, "src/runtime-deps/8.0/alpine3.21/amd64": 10251833, "src/runtime-deps/8.0/alpine3.21/arm32v7": 6858356, "src/runtime-deps/8.0/alpine3.21/arm64v8": 10582917, @@ -92,6 +94,8 @@ "src/runtime/8.0/bookworm-slim/amd64": 193378063, "src/runtime/8.0/bookworm-slim/arm32v7": 167488698, "src/runtime/8.0/bookworm-slim/arm64v8": 223233946, + "src/runtime/8.0/trixie-slim/amd64": 193378063, + "src/runtime/8.0/trixie-slim/arm64v8": 223233946, "src/runtime/8.0/alpine3.21/amd64": 82940625, "src/runtime/8.0/alpine3.21/arm32v7": 73581244, "src/runtime/8.0/alpine3.21/arm64v8": 89348187, @@ -172,6 +176,8 @@ "src/aspnet/8.0/bookworm-slim/amd64": 214930477, "src/aspnet/8.0/bookworm-slim/arm32v7": 190908831, "src/aspnet/8.0/bookworm-slim/arm64v8": 247349442, + "src/aspnet/8.0/trixie-slim/amd64": 214930477, + "src/aspnet/8.0/trixie-slim/arm64v8": 247349442, "src/aspnet/8.0/alpine3.21/amd64": 106914155, "src/aspnet/8.0/alpine3.21/arm32v7": 99021654, "src/aspnet/8.0/alpine3.21/arm64v8": 116109055, @@ -299,6 +305,8 @@ "src/sdk/8.0/bookworm-slim/amd64": 823543661, "src/sdk/8.0/bookworm-slim/arm32v7": 776844580, "src/sdk/8.0/bookworm-slim/arm64v8": 880785194, + "src/sdk/8.0/trixie-slim/amd64": 823543661, + "src/sdk/8.0/trixie-slim/arm64v8": 880785194, "src/sdk/8.0/alpine3.21/amd64": 688247541, "src/sdk/8.0/alpine3.21/arm32v7": 624778025, "src/sdk/8.0/alpine3.21/arm64v8": 673616900,