diff --git a/README.aspnet.md b/README.aspnet.md index f0011bba46..c0fd09ed57 100644 --- a/README.aspnet.md +++ b/README.aspnet.md @@ -108,6 +108,11 @@ Tags | Dockerfile | OS Version 10.0.8-azurelinux3.0-distroless-extra-amd64, 10.0-azurelinux3.0-distroless-extra-amd64, 10.0.8-azurelinux3.0-distroless-extra, 10.0-azurelinux3.0-distroless-extra | [Dockerfile](src/aspnet/10.0/azurelinux3.0-distroless-extra/amd64/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-composite-amd64, 10.0-azurelinux3.0-distroless-composite-amd64, 10.0.8-azurelinux3.0-distroless-composite, 10.0-azurelinux3.0-distroless-composite | [Dockerfile](src/aspnet/10.0/azurelinux3.0-distroless-composite/amd64/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-composite-extra-amd64, 10.0-azurelinux3.0-distroless-composite-extra-amd64, 10.0.8-azurelinux3.0-distroless-composite-extra, 10.0-azurelinux3.0-distroless-composite-extra | [Dockerfile](src/aspnet/10.0/azurelinux3.0-distroless-composite-extra/amd64/Dockerfile) | Azure Linux 3.0 +10.0.8-azurelinux4.0-amd64, 10.0-azurelinux4.0-amd64, 10.0.8-azurelinux4.0, 10.0-azurelinux4.0 | [Dockerfile](src/aspnet/10.0/azurelinux4.0/amd64/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-amd64, 10.0-azurelinux4.0-distroless-amd64, 10.0.8-azurelinux4.0-distroless, 10.0-azurelinux4.0-distroless | [Dockerfile](src/aspnet/10.0/azurelinux4.0-distroless/amd64/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-extra-amd64, 10.0-azurelinux4.0-distroless-extra-amd64, 10.0.8-azurelinux4.0-distroless-extra, 10.0-azurelinux4.0-distroless-extra | [Dockerfile](src/aspnet/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-composite-amd64, 10.0-azurelinux4.0-distroless-composite-amd64, 10.0.8-azurelinux4.0-distroless-composite, 10.0-azurelinux4.0-distroless-composite | [Dockerfile](src/aspnet/10.0/azurelinux4.0-distroless-composite/amd64/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-composite-extra-amd64, 10.0-azurelinux4.0-distroless-composite-extra-amd64, 10.0.8-azurelinux4.0-distroless-composite-extra, 10.0-azurelinux4.0-distroless-composite-extra | [Dockerfile](src/aspnet/10.0/azurelinux4.0-distroless-composite-extra/amd64/Dockerfile) | Azure Linux 4.0 9.0.16-bookworm-slim-amd64, 9.0-bookworm-slim-amd64, 9.0.16-bookworm-slim, 9.0-bookworm-slim, 9.0.16, 9.0 | [Dockerfile](src/aspnet/9.0/bookworm-slim/amd64/Dockerfile) | Debian 12 9.0.16-alpine3.23-amd64, 9.0-alpine3.23-amd64, 9.0-alpine-amd64, 9.0.16-alpine3.23, 9.0-alpine3.23, 9.0-alpine | [Dockerfile](src/aspnet/9.0/alpine3.23/amd64/Dockerfile) | Alpine 3.23 9.0.16-alpine3.23-extra-amd64, 9.0-alpine3.23-extra-amd64, 9.0-alpine-extra-amd64, 9.0.16-alpine3.23-extra, 9.0-alpine3.23-extra, 9.0-alpine-extra | [Dockerfile](src/aspnet/9.0/alpine3.23-extra/amd64/Dockerfile) | Alpine 3.23 @@ -162,6 +167,11 @@ Tags | Dockerfile | OS Version 11.0.0-preview.5-azurelinux3.0-distroless-extra-amd64, 11.0-preview-azurelinux3.0-distroless-extra-amd64, 11.0.0-preview.5-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-preview.5-azurelinux3.0-distroless-composite-amd64, 11.0-preview-azurelinux3.0-distroless-composite-amd64, 11.0.0-preview.5-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-preview.5-azurelinux3.0-distroless-composite-extra-amd64, 11.0-preview-azurelinux3.0-distroless-composite-extra-amd64, 11.0.0-preview.5-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 +11.0.0-preview.5-azurelinux4.0-amd64, 11.0-preview-azurelinux4.0-amd64, 11.0.0-preview.5-azurelinux4.0, 11.0-preview-azurelinux4.0 | [Dockerfile](src/aspnet/11.0/azurelinux4.0/amd64/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-amd64, 11.0-preview-azurelinux4.0-distroless-amd64, 11.0.0-preview.5-azurelinux4.0-distroless, 11.0-preview-azurelinux4.0-distroless | [Dockerfile](src/aspnet/11.0/azurelinux4.0-distroless/amd64/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-extra-amd64, 11.0-preview-azurelinux4.0-distroless-extra-amd64, 11.0.0-preview.5-azurelinux4.0-distroless-extra, 11.0-preview-azurelinux4.0-distroless-extra | [Dockerfile](src/aspnet/11.0/azurelinux4.0-distroless-extra/amd64/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-composite-amd64, 11.0-preview-azurelinux4.0-distroless-composite-amd64, 11.0.0-preview.5-azurelinux4.0-distroless-composite, 11.0-preview-azurelinux4.0-distroless-composite | [Dockerfile](src/aspnet/11.0/azurelinux4.0-distroless-composite/amd64/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-composite-extra-amd64, 11.0-preview-azurelinux4.0-distroless-composite-extra-amd64, 11.0.0-preview.5-azurelinux4.0-distroless-composite-extra, 11.0-preview-azurelinux4.0-distroless-composite-extra | [Dockerfile](src/aspnet/11.0/azurelinux4.0-distroless-composite-extra/amd64/Dockerfile) | Azure Linux 4.0 ### Linux arm64 Tags @@ -186,6 +196,11 @@ Tags | Dockerfile | OS Version 10.0.8-azurelinux3.0-distroless-extra-arm64v8, 10.0-azurelinux3.0-distroless-extra-arm64v8, 10.0.8-azurelinux3.0-distroless-extra, 10.0-azurelinux3.0-distroless-extra | [Dockerfile](src/aspnet/10.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-composite-arm64v8, 10.0-azurelinux3.0-distroless-composite-arm64v8, 10.0.8-azurelinux3.0-distroless-composite, 10.0-azurelinux3.0-distroless-composite | [Dockerfile](src/aspnet/10.0/azurelinux3.0-distroless-composite/arm64v8/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-composite-extra-arm64v8, 10.0-azurelinux3.0-distroless-composite-extra-arm64v8, 10.0.8-azurelinux3.0-distroless-composite-extra, 10.0-azurelinux3.0-distroless-composite-extra | [Dockerfile](src/aspnet/10.0/azurelinux3.0-distroless-composite-extra/arm64v8/Dockerfile) | Azure Linux 3.0 +10.0.8-azurelinux4.0-arm64v8, 10.0-azurelinux4.0-arm64v8, 10.0.8-azurelinux4.0, 10.0-azurelinux4.0 | [Dockerfile](src/aspnet/10.0/azurelinux4.0/arm64v8/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-arm64v8, 10.0-azurelinux4.0-distroless-arm64v8, 10.0.8-azurelinux4.0-distroless, 10.0-azurelinux4.0-distroless | [Dockerfile](src/aspnet/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-extra-arm64v8, 10.0-azurelinux4.0-distroless-extra-arm64v8, 10.0.8-azurelinux4.0-distroless-extra, 10.0-azurelinux4.0-distroless-extra | [Dockerfile](src/aspnet/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-composite-arm64v8, 10.0-azurelinux4.0-distroless-composite-arm64v8, 10.0.8-azurelinux4.0-distroless-composite, 10.0-azurelinux4.0-distroless-composite | [Dockerfile](src/aspnet/10.0/azurelinux4.0-distroless-composite/arm64v8/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-composite-extra-arm64v8, 10.0-azurelinux4.0-distroless-composite-extra-arm64v8, 10.0.8-azurelinux4.0-distroless-composite-extra, 10.0-azurelinux4.0-distroless-composite-extra | [Dockerfile](src/aspnet/10.0/azurelinux4.0-distroless-composite-extra/arm64v8/Dockerfile) | Azure Linux 4.0 9.0.16-bookworm-slim-arm64v8, 9.0-bookworm-slim-arm64v8, 9.0.16-bookworm-slim, 9.0-bookworm-slim, 9.0.16, 9.0 | [Dockerfile](src/aspnet/9.0/bookworm-slim/arm64v8/Dockerfile) | Debian 12 9.0.16-alpine3.23-arm64v8, 9.0-alpine3.23-arm64v8, 9.0-alpine-arm64v8, 9.0.16-alpine3.23, 9.0-alpine3.23, 9.0-alpine | [Dockerfile](src/aspnet/9.0/alpine3.23/arm64v8/Dockerfile) | Alpine 3.23 9.0.16-alpine3.23-extra-arm64v8, 9.0-alpine3.23-extra-arm64v8, 9.0-alpine-extra-arm64v8, 9.0.16-alpine3.23-extra, 9.0-alpine3.23-extra, 9.0-alpine-extra | [Dockerfile](src/aspnet/9.0/alpine3.23-extra/arm64v8/Dockerfile) | Alpine 3.23 @@ -240,6 +255,11 @@ Tags | Dockerfile | OS Version 11.0.0-preview.5-azurelinux3.0-distroless-extra-arm64v8, 11.0-preview-azurelinux3.0-distroless-extra-arm64v8, 11.0.0-preview.5-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-preview.5-azurelinux3.0-distroless-composite-arm64v8, 11.0-preview-azurelinux3.0-distroless-composite-arm64v8, 11.0.0-preview.5-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-preview.5-azurelinux3.0-distroless-composite-extra-arm64v8, 11.0-preview-azurelinux3.0-distroless-composite-extra-arm64v8, 11.0.0-preview.5-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 +11.0.0-preview.5-azurelinux4.0-arm64v8, 11.0-preview-azurelinux4.0-arm64v8, 11.0.0-preview.5-azurelinux4.0, 11.0-preview-azurelinux4.0 | [Dockerfile](src/aspnet/11.0/azurelinux4.0/arm64v8/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-arm64v8, 11.0-preview-azurelinux4.0-distroless-arm64v8, 11.0.0-preview.5-azurelinux4.0-distroless, 11.0-preview-azurelinux4.0-distroless | [Dockerfile](src/aspnet/11.0/azurelinux4.0-distroless/arm64v8/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-extra-arm64v8, 11.0-preview-azurelinux4.0-distroless-extra-arm64v8, 11.0.0-preview.5-azurelinux4.0-distroless-extra, 11.0-preview-azurelinux4.0-distroless-extra | [Dockerfile](src/aspnet/11.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-composite-arm64v8, 11.0-preview-azurelinux4.0-distroless-composite-arm64v8, 11.0.0-preview.5-azurelinux4.0-distroless-composite, 11.0-preview-azurelinux4.0-distroless-composite | [Dockerfile](src/aspnet/11.0/azurelinux4.0-distroless-composite/arm64v8/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-composite-extra-arm64v8, 11.0-preview-azurelinux4.0-distroless-composite-extra-arm64v8, 11.0.0-preview.5-azurelinux4.0-distroless-composite-extra, 11.0-preview-azurelinux4.0-distroless-composite-extra | [Dockerfile](src/aspnet/11.0/azurelinux4.0-distroless-composite-extra/arm64v8/Dockerfile) | Azure Linux 4.0 ### Linux arm32 Tags diff --git a/README.runtime-deps.md b/README.runtime-deps.md index 4fb956e00a..d92af69421 100644 --- a/README.runtime-deps.md +++ b/README.runtime-deps.md @@ -82,6 +82,9 @@ Tags | Dockerfile | OS Version 10.0.8-azurelinux3.0-amd64, 10.0-azurelinux3.0-amd64, 10.0.8-azurelinux3.0, 10.0-azurelinux3.0 | [Dockerfile](src/runtime-deps/10.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-amd64, 10.0-azurelinux3.0-distroless-amd64, 10.0.8-azurelinux3.0-distroless, 10.0-azurelinux3.0-distroless | [Dockerfile](src/runtime-deps/10.0/azurelinux3.0-distroless/amd64/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-extra-amd64, 10.0-azurelinux3.0-distroless-extra-amd64, 10.0.8-azurelinux3.0-distroless-extra, 10.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime-deps/10.0/azurelinux3.0-distroless-extra/amd64/Dockerfile) | Azure Linux 3.0 +10.0.8-azurelinux4.0-amd64, 10.0-azurelinux4.0-amd64, 10.0.8-azurelinux4.0, 10.0-azurelinux4.0 | [Dockerfile](src/runtime-deps/10.0/azurelinux4.0/amd64/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-amd64, 10.0-azurelinux4.0-distroless-amd64, 10.0.8-azurelinux4.0-distroless, 10.0-azurelinux4.0-distroless | [Dockerfile](src/runtime-deps/10.0/azurelinux4.0-distroless/amd64/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-extra-amd64, 10.0-azurelinux4.0-distroless-extra-amd64, 10.0.8-azurelinux4.0-distroless-extra, 10.0-azurelinux4.0-distroless-extra | [Dockerfile](src/runtime-deps/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile) | Azure Linux 4.0 9.0.16-bookworm-slim-amd64, 9.0-bookworm-slim-amd64, 9.0.16-bookworm-slim, 9.0-bookworm-slim, 9.0.16, 9.0 | [Dockerfile](src/runtime-deps/9.0/bookworm-slim/amd64/Dockerfile) | Debian 12 9.0.16-alpine3.23-amd64, 9.0-alpine3.23-amd64, 9.0-alpine-amd64, 9.0.16-alpine3.23, 9.0-alpine3.23, 9.0-alpine | [Dockerfile](src/runtime-deps/9.0/alpine3.23/amd64/Dockerfile) | Alpine 3.23 9.0.16-alpine3.23-extra-amd64, 9.0-alpine3.23-extra-amd64, 9.0-alpine-extra-amd64, 9.0.16-alpine3.23-extra, 9.0-alpine3.23-extra, 9.0-alpine-extra | [Dockerfile](src/runtime-deps/9.0/alpine3.23-extra/amd64/Dockerfile) | Alpine 3.23 @@ -116,6 +119,9 @@ Tags | Dockerfile | OS Version 11.0.0-preview.5-azurelinux3.0-amd64, 11.0-preview-azurelinux3.0-amd64, 11.0.0-preview.5-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/runtime-deps/11.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 11.0.0-preview.5-azurelinux3.0-distroless-amd64, 11.0-preview-azurelinux3.0-distroless-amd64, 11.0.0-preview.5-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-preview.5-azurelinux3.0-distroless-extra-amd64, 11.0-preview-azurelinux3.0-distroless-extra-amd64, 11.0.0-preview.5-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 +11.0.0-preview.5-azurelinux4.0-amd64, 11.0-preview-azurelinux4.0-amd64, 11.0.0-preview.5-azurelinux4.0, 11.0-preview-azurelinux4.0 | [Dockerfile](src/runtime-deps/11.0/azurelinux4.0/amd64/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-amd64, 11.0-preview-azurelinux4.0-distroless-amd64, 11.0.0-preview.5-azurelinux4.0-distroless, 11.0-preview-azurelinux4.0-distroless | [Dockerfile](src/runtime-deps/11.0/azurelinux4.0-distroless/amd64/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-extra-amd64, 11.0-preview-azurelinux4.0-distroless-extra-amd64, 11.0.0-preview.5-azurelinux4.0-distroless-extra, 11.0-preview-azurelinux4.0-distroless-extra | [Dockerfile](src/runtime-deps/11.0/azurelinux4.0-distroless-extra/amd64/Dockerfile) | Azure Linux 4.0 ### Linux arm64 Tags @@ -132,6 +138,9 @@ Tags | Dockerfile | OS Version 10.0.8-azurelinux3.0-arm64v8, 10.0-azurelinux3.0-arm64v8, 10.0.8-azurelinux3.0, 10.0-azurelinux3.0 | [Dockerfile](src/runtime-deps/10.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-arm64v8, 10.0-azurelinux3.0-distroless-arm64v8, 10.0.8-azurelinux3.0-distroless, 10.0-azurelinux3.0-distroless | [Dockerfile](src/runtime-deps/10.0/azurelinux3.0-distroless/arm64v8/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-extra-arm64v8, 10.0-azurelinux3.0-distroless-extra-arm64v8, 10.0.8-azurelinux3.0-distroless-extra, 10.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime-deps/10.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 3.0 +10.0.8-azurelinux4.0-arm64v8, 10.0-azurelinux4.0-arm64v8, 10.0.8-azurelinux4.0, 10.0-azurelinux4.0 | [Dockerfile](src/runtime-deps/10.0/azurelinux4.0/arm64v8/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-arm64v8, 10.0-azurelinux4.0-distroless-arm64v8, 10.0.8-azurelinux4.0-distroless, 10.0-azurelinux4.0-distroless | [Dockerfile](src/runtime-deps/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-extra-arm64v8, 10.0-azurelinux4.0-distroless-extra-arm64v8, 10.0.8-azurelinux4.0-distroless-extra, 10.0-azurelinux4.0-distroless-extra | [Dockerfile](src/runtime-deps/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 4.0 9.0.16-bookworm-slim-arm64v8, 9.0-bookworm-slim-arm64v8, 9.0.16-bookworm-slim, 9.0-bookworm-slim, 9.0.16, 9.0 | [Dockerfile](src/runtime-deps/9.0/bookworm-slim/arm64v8/Dockerfile) | Debian 12 9.0.16-alpine3.23-arm64v8, 9.0-alpine3.23-arm64v8, 9.0-alpine-arm64v8, 9.0.16-alpine3.23, 9.0-alpine3.23, 9.0-alpine | [Dockerfile](src/runtime-deps/9.0/alpine3.23/arm64v8/Dockerfile) | Alpine 3.23 9.0.16-alpine3.23-extra-arm64v8, 9.0-alpine3.23-extra-arm64v8, 9.0-alpine-extra-arm64v8, 9.0.16-alpine3.23-extra, 9.0-alpine3.23-extra, 9.0-alpine-extra | [Dockerfile](src/runtime-deps/9.0/alpine3.23-extra/arm64v8/Dockerfile) | Alpine 3.23 @@ -166,6 +175,9 @@ Tags | Dockerfile | OS Version 11.0.0-preview.5-azurelinux3.0-arm64v8, 11.0-preview-azurelinux3.0-arm64v8, 11.0.0-preview.5-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/runtime-deps/11.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 11.0.0-preview.5-azurelinux3.0-distroless-arm64v8, 11.0-preview-azurelinux3.0-distroless-arm64v8, 11.0.0-preview.5-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-preview.5-azurelinux3.0-distroless-extra-arm64v8, 11.0-preview-azurelinux3.0-distroless-extra-arm64v8, 11.0.0-preview.5-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 +11.0.0-preview.5-azurelinux4.0-arm64v8, 11.0-preview-azurelinux4.0-arm64v8, 11.0.0-preview.5-azurelinux4.0, 11.0-preview-azurelinux4.0 | [Dockerfile](src/runtime-deps/11.0/azurelinux4.0/arm64v8/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-arm64v8, 11.0-preview-azurelinux4.0-distroless-arm64v8, 11.0.0-preview.5-azurelinux4.0-distroless, 11.0-preview-azurelinux4.0-distroless | [Dockerfile](src/runtime-deps/11.0/azurelinux4.0-distroless/arm64v8/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-extra-arm64v8, 11.0-preview-azurelinux4.0-distroless-extra-arm64v8, 11.0.0-preview.5-azurelinux4.0-distroless-extra, 11.0-preview-azurelinux4.0-distroless-extra | [Dockerfile](src/runtime-deps/11.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 4.0 ### Linux arm32 Tags diff --git a/README.runtime.md b/README.runtime.md index 23ed5403ed..65d06d8c93 100644 --- a/README.runtime.md +++ b/README.runtime.md @@ -89,6 +89,9 @@ Tags | Dockerfile | OS Version 10.0.8-azurelinux3.0-amd64, 10.0-azurelinux3.0-amd64, 10.0.8-azurelinux3.0, 10.0-azurelinux3.0 | [Dockerfile](src/runtime/10.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-amd64, 10.0-azurelinux3.0-distroless-amd64, 10.0.8-azurelinux3.0-distroless, 10.0-azurelinux3.0-distroless | [Dockerfile](src/runtime/10.0/azurelinux3.0-distroless/amd64/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-extra-amd64, 10.0-azurelinux3.0-distroless-extra-amd64, 10.0.8-azurelinux3.0-distroless-extra, 10.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime/10.0/azurelinux3.0-distroless-extra/amd64/Dockerfile) | Azure Linux 3.0 +10.0.8-azurelinux4.0-amd64, 10.0-azurelinux4.0-amd64, 10.0.8-azurelinux4.0, 10.0-azurelinux4.0 | [Dockerfile](src/runtime/10.0/azurelinux4.0/amd64/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-amd64, 10.0-azurelinux4.0-distroless-amd64, 10.0.8-azurelinux4.0-distroless, 10.0-azurelinux4.0-distroless | [Dockerfile](src/runtime/10.0/azurelinux4.0-distroless/amd64/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-extra-amd64, 10.0-azurelinux4.0-distroless-extra-amd64, 10.0.8-azurelinux4.0-distroless-extra, 10.0-azurelinux4.0-distroless-extra | [Dockerfile](src/runtime/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile) | Azure Linux 4.0 9.0.16-bookworm-slim-amd64, 9.0-bookworm-slim-amd64, 9.0.16-bookworm-slim, 9.0-bookworm-slim, 9.0.16, 9.0 | [Dockerfile](src/runtime/9.0/bookworm-slim/amd64/Dockerfile) | Debian 12 9.0.16-alpine3.23-amd64, 9.0-alpine3.23-amd64, 9.0-alpine-amd64, 9.0.16-alpine3.23, 9.0-alpine3.23, 9.0-alpine | [Dockerfile](src/runtime/9.0/alpine3.23/amd64/Dockerfile) | Alpine 3.23 9.0.16-alpine3.23-extra-amd64, 9.0-alpine3.23-extra-amd64, 9.0-alpine-extra-amd64, 9.0.16-alpine3.23-extra, 9.0-alpine3.23-extra, 9.0-alpine-extra | [Dockerfile](src/runtime/9.0/alpine3.23-extra/amd64/Dockerfile) | Alpine 3.23 @@ -123,6 +126,9 @@ Tags | Dockerfile | OS Version 11.0.0-preview.5-azurelinux3.0-amd64, 11.0-preview-azurelinux3.0-amd64, 11.0.0-preview.5-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/runtime/11.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 11.0.0-preview.5-azurelinux3.0-distroless-amd64, 11.0-preview-azurelinux3.0-distroless-amd64, 11.0.0-preview.5-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-preview.5-azurelinux3.0-distroless-extra-amd64, 11.0-preview-azurelinux3.0-distroless-extra-amd64, 11.0.0-preview.5-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 +11.0.0-preview.5-azurelinux4.0-amd64, 11.0-preview-azurelinux4.0-amd64, 11.0.0-preview.5-azurelinux4.0, 11.0-preview-azurelinux4.0 | [Dockerfile](src/runtime/11.0/azurelinux4.0/amd64/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-amd64, 11.0-preview-azurelinux4.0-distroless-amd64, 11.0.0-preview.5-azurelinux4.0-distroless, 11.0-preview-azurelinux4.0-distroless | [Dockerfile](src/runtime/11.0/azurelinux4.0-distroless/amd64/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-extra-amd64, 11.0-preview-azurelinux4.0-distroless-extra-amd64, 11.0.0-preview.5-azurelinux4.0-distroless-extra, 11.0-preview-azurelinux4.0-distroless-extra | [Dockerfile](src/runtime/11.0/azurelinux4.0-distroless-extra/amd64/Dockerfile) | Azure Linux 4.0 ### Linux arm64 Tags @@ -139,6 +145,9 @@ Tags | Dockerfile | OS Version 10.0.8-azurelinux3.0-arm64v8, 10.0-azurelinux3.0-arm64v8, 10.0.8-azurelinux3.0, 10.0-azurelinux3.0 | [Dockerfile](src/runtime/10.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-arm64v8, 10.0-azurelinux3.0-distroless-arm64v8, 10.0.8-azurelinux3.0-distroless, 10.0-azurelinux3.0-distroless | [Dockerfile](src/runtime/10.0/azurelinux3.0-distroless/arm64v8/Dockerfile) | Azure Linux 3.0 10.0.8-azurelinux3.0-distroless-extra-arm64v8, 10.0-azurelinux3.0-distroless-extra-arm64v8, 10.0.8-azurelinux3.0-distroless-extra, 10.0-azurelinux3.0-distroless-extra | [Dockerfile](src/runtime/10.0/azurelinux3.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 3.0 +10.0.8-azurelinux4.0-arm64v8, 10.0-azurelinux4.0-arm64v8, 10.0.8-azurelinux4.0, 10.0-azurelinux4.0 | [Dockerfile](src/runtime/10.0/azurelinux4.0/arm64v8/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-arm64v8, 10.0-azurelinux4.0-distroless-arm64v8, 10.0.8-azurelinux4.0-distroless, 10.0-azurelinux4.0-distroless | [Dockerfile](src/runtime/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile) | Azure Linux 4.0 +10.0.8-azurelinux4.0-distroless-extra-arm64v8, 10.0-azurelinux4.0-distroless-extra-arm64v8, 10.0.8-azurelinux4.0-distroless-extra, 10.0-azurelinux4.0-distroless-extra | [Dockerfile](src/runtime/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 4.0 9.0.16-bookworm-slim-arm64v8, 9.0-bookworm-slim-arm64v8, 9.0.16-bookworm-slim, 9.0-bookworm-slim, 9.0.16, 9.0 | [Dockerfile](src/runtime/9.0/bookworm-slim/arm64v8/Dockerfile) | Debian 12 9.0.16-alpine3.23-arm64v8, 9.0-alpine3.23-arm64v8, 9.0-alpine-arm64v8, 9.0.16-alpine3.23, 9.0-alpine3.23, 9.0-alpine | [Dockerfile](src/runtime/9.0/alpine3.23/arm64v8/Dockerfile) | Alpine 3.23 9.0.16-alpine3.23-extra-arm64v8, 9.0-alpine3.23-extra-arm64v8, 9.0-alpine-extra-arm64v8, 9.0.16-alpine3.23-extra, 9.0-alpine3.23-extra, 9.0-alpine-extra | [Dockerfile](src/runtime/9.0/alpine3.23-extra/arm64v8/Dockerfile) | Alpine 3.23 @@ -173,6 +182,9 @@ Tags | Dockerfile | OS Version 11.0.0-preview.5-azurelinux3.0-arm64v8, 11.0-preview-azurelinux3.0-arm64v8, 11.0.0-preview.5-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/runtime/11.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 11.0.0-preview.5-azurelinux3.0-distroless-arm64v8, 11.0-preview-azurelinux3.0-distroless-arm64v8, 11.0.0-preview.5-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-preview.5-azurelinux3.0-distroless-extra-arm64v8, 11.0-preview-azurelinux3.0-distroless-extra-arm64v8, 11.0.0-preview.5-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 +11.0.0-preview.5-azurelinux4.0-arm64v8, 11.0-preview-azurelinux4.0-arm64v8, 11.0.0-preview.5-azurelinux4.0, 11.0-preview-azurelinux4.0 | [Dockerfile](src/runtime/11.0/azurelinux4.0/arm64v8/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-arm64v8, 11.0-preview-azurelinux4.0-distroless-arm64v8, 11.0.0-preview.5-azurelinux4.0-distroless, 11.0-preview-azurelinux4.0-distroless | [Dockerfile](src/runtime/11.0/azurelinux4.0-distroless/arm64v8/Dockerfile) | Azure Linux 4.0 +11.0.0-preview.5-azurelinux4.0-distroless-extra-arm64v8, 11.0-preview-azurelinux4.0-distroless-extra-arm64v8, 11.0.0-preview.5-azurelinux4.0-distroless-extra, 11.0-preview-azurelinux4.0-distroless-extra | [Dockerfile](src/runtime/11.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile) | Azure Linux 4.0 ### Linux arm32 Tags diff --git a/README.sdk.md b/README.sdk.md index bfdef52291..d274d71f3f 100644 --- a/README.sdk.md +++ b/README.sdk.md @@ -82,6 +82,8 @@ Tags | Dockerfile | OS Version 10.0.300-alpine3.23-aot-amd64, 10.0-alpine3.23-aot-amd64, 10.0-alpine-aot-amd64, 10.0.300-alpine3.23-aot, 10.0-alpine3.23-aot, 10.0-alpine-aot | [Dockerfile](src/sdk/10.0/alpine3.23-aot/amd64/Dockerfile) | Alpine 3.23 10.0.300-azurelinux3.0-amd64, 10.0-azurelinux3.0-amd64, 10.0.300-azurelinux3.0, 10.0-azurelinux3.0 | [Dockerfile](src/sdk/10.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 10.0.300-azurelinux3.0-aot-amd64, 10.0-azurelinux3.0-aot-amd64, 10.0.300-azurelinux3.0-aot, 10.0-azurelinux3.0-aot | [Dockerfile](src/sdk/10.0/azurelinux3.0-aot/amd64/Dockerfile) | Azure Linux 3.0 +10.0.300-azurelinux4.0-amd64, 10.0-azurelinux4.0-amd64, 10.0.300-azurelinux4.0, 10.0-azurelinux4.0 | [Dockerfile](src/sdk/10.0/azurelinux4.0/amd64/Dockerfile) | Azure Linux 4.0 +10.0.300-azurelinux4.0-aot-amd64, 10.0-azurelinux4.0-aot-amd64, 10.0.300-azurelinux4.0-aot, 10.0-azurelinux4.0-aot | [Dockerfile](src/sdk/10.0/azurelinux4.0-aot/amd64/Dockerfile) | Azure Linux 4.0 9.0.314-bookworm-slim-amd64, 9.0-bookworm-slim-amd64, 9.0.314-bookworm-slim, 9.0-bookworm-slim, 9.0.314, 9.0 | [Dockerfile](src/sdk/9.0/bookworm-slim/amd64/Dockerfile) | Debian 12 9.0.314-alpine3.23-amd64, 9.0-alpine3.23-amd64, 9.0-alpine-amd64, 9.0.314-alpine3.23, 9.0-alpine3.23, 9.0-alpine | [Dockerfile](src/sdk/9.0/alpine3.23/amd64/Dockerfile) | Alpine 3.23 9.0.314-noble-amd64, 9.0-noble-amd64, 9.0.314-noble, 9.0-noble | [Dockerfile](src/sdk/9.0/noble/amd64/Dockerfile) | Ubuntu 24.04 @@ -102,6 +104,8 @@ Tags | Dockerfile | OS Version 11.0.100-preview.5-alpine3.23-aot-amd64, 11.0-preview-alpine3.23-aot-amd64, 11.0-preview-alpine-aot-amd64, 11.0.100-preview.5-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-preview.5-azurelinux3.0-amd64, 11.0-preview-azurelinux3.0-amd64, 11.0.100-preview.5-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/sdk/11.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0 11.0.100-preview.5-azurelinux3.0-aot-amd64, 11.0-preview-azurelinux3.0-aot-amd64, 11.0.100-preview.5-azurelinux3.0-aot, 11.0-preview-azurelinux3.0-aot | [Dockerfile](src/sdk/11.0/azurelinux3.0-aot/amd64/Dockerfile) | Azure Linux 3.0 +11.0.100-preview.5-azurelinux4.0-amd64, 11.0-preview-azurelinux4.0-amd64, 11.0.100-preview.5-azurelinux4.0, 11.0-preview-azurelinux4.0 | [Dockerfile](src/sdk/11.0/azurelinux4.0/amd64/Dockerfile) | Azure Linux 4.0 +11.0.100-preview.5-azurelinux4.0-aot-amd64, 11.0-preview-azurelinux4.0-aot-amd64, 11.0.100-preview.5-azurelinux4.0-aot, 11.0-preview-azurelinux4.0-aot | [Dockerfile](src/sdk/11.0/azurelinux4.0-aot/amd64/Dockerfile) | Azure Linux 4.0 ### Linux arm64 Tags @@ -115,6 +119,8 @@ Tags | Dockerfile | OS Version 10.0.300-alpine3.23-aot-arm64v8, 10.0-alpine3.23-aot-arm64v8, 10.0-alpine-aot-arm64v8, 10.0.300-alpine3.23-aot, 10.0-alpine3.23-aot, 10.0-alpine-aot | [Dockerfile](src/sdk/10.0/alpine3.23-aot/arm64v8/Dockerfile) | Alpine 3.23 10.0.300-azurelinux3.0-arm64v8, 10.0-azurelinux3.0-arm64v8, 10.0.300-azurelinux3.0, 10.0-azurelinux3.0 | [Dockerfile](src/sdk/10.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 10.0.300-azurelinux3.0-aot-arm64v8, 10.0-azurelinux3.0-aot-arm64v8, 10.0.300-azurelinux3.0-aot, 10.0-azurelinux3.0-aot | [Dockerfile](src/sdk/10.0/azurelinux3.0-aot/arm64v8/Dockerfile) | Azure Linux 3.0 +10.0.300-azurelinux4.0-arm64v8, 10.0-azurelinux4.0-arm64v8, 10.0.300-azurelinux4.0, 10.0-azurelinux4.0 | [Dockerfile](src/sdk/10.0/azurelinux4.0/arm64v8/Dockerfile) | Azure Linux 4.0 +10.0.300-azurelinux4.0-aot-arm64v8, 10.0-azurelinux4.0-aot-arm64v8, 10.0.300-azurelinux4.0-aot, 10.0-azurelinux4.0-aot | [Dockerfile](src/sdk/10.0/azurelinux4.0-aot/arm64v8/Dockerfile) | Azure Linux 4.0 9.0.314-bookworm-slim-arm64v8, 9.0-bookworm-slim-arm64v8, 9.0.314-bookworm-slim, 9.0-bookworm-slim, 9.0.314, 9.0 | [Dockerfile](src/sdk/9.0/bookworm-slim/arm64v8/Dockerfile) | Debian 12 9.0.314-alpine3.23-arm64v8, 9.0-alpine3.23-arm64v8, 9.0-alpine-arm64v8, 9.0.314-alpine3.23, 9.0-alpine3.23, 9.0-alpine | [Dockerfile](src/sdk/9.0/alpine3.23/arm64v8/Dockerfile) | Alpine 3.23 9.0.314-noble-arm64v8, 9.0-noble-arm64v8, 9.0.314-noble, 9.0-noble | [Dockerfile](src/sdk/9.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04 @@ -135,6 +141,8 @@ Tags | Dockerfile | OS Version 11.0.100-preview.5-alpine3.23-aot-arm64v8, 11.0-preview-alpine3.23-aot-arm64v8, 11.0-preview-alpine-aot-arm64v8, 11.0.100-preview.5-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-preview.5-azurelinux3.0-arm64v8, 11.0-preview-azurelinux3.0-arm64v8, 11.0.100-preview.5-azurelinux3.0, 11.0-preview-azurelinux3.0 | [Dockerfile](src/sdk/11.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0 11.0.100-preview.5-azurelinux3.0-aot-arm64v8, 11.0-preview-azurelinux3.0-aot-arm64v8, 11.0.100-preview.5-azurelinux3.0-aot, 11.0-preview-azurelinux3.0-aot | [Dockerfile](src/sdk/11.0/azurelinux3.0-aot/arm64v8/Dockerfile) | Azure Linux 3.0 +11.0.100-preview.5-azurelinux4.0-arm64v8, 11.0-preview-azurelinux4.0-arm64v8, 11.0.100-preview.5-azurelinux4.0, 11.0-preview-azurelinux4.0 | [Dockerfile](src/sdk/11.0/azurelinux4.0/arm64v8/Dockerfile) | Azure Linux 4.0 +11.0.100-preview.5-azurelinux4.0-aot-arm64v8, 11.0-preview-azurelinux4.0-aot-arm64v8, 11.0.100-preview.5-azurelinux4.0-aot, 11.0-preview-azurelinux4.0-aot | [Dockerfile](src/sdk/11.0/azurelinux4.0-aot/arm64v8/Dockerfile) | Azure Linux 4.0 ### Linux arm32 Tags diff --git a/eng/dockerfile-templates/Dockerfile.linux.install-deps b/eng/dockerfile-templates/Dockerfile.linux.install-deps index eae4742f7b..da785089fb 100644 --- a/eng/dockerfile-templates/Dockerfile.linux.install-deps +++ b/eng/dockerfile-templates/Dockerfile.linux.install-deps @@ -11,6 +11,7 @@ set isUbuntu to find(OS_ARCH_HYPHENATED, "Ubuntu") >= 0 ^ set isAzureLinux to find(OS_VERSION, "azurelinux") >= 0 ^ set isDistrolessAzureLinux to defined(match(OS_VERSION, "^azurelinux\d+\.\d+-distroless$")) ^ + set isAzureLinux3 to defined(match(OS_VERSION, "^azurelinux3")) ^ set isFullAzureLinux to isAzureLinux && !isDistrolessAzureLinux ^ set dotnetDepsComment to "# .NET dependencies" ^ @@ -79,11 +80,15 @@ extraPkgs, standardPkgs)) ^ - set prefixPkgs to [ + set prefixPkgs to when(isDistrolessAzureLinux && !isAzureLinux3, + [ + dotnetDepsComment + ], + [ caCertsPkg, "", dotnetDepsComment - ] ^ + ]) ^ set suffixPkgs to when(isAlpine && dotnetVersion != "8.0", ["", "# manually update zlib from alpine base image", zlibPkg], []) ^ @@ -92,13 +97,16 @@ set pkgMgrOpts to when(len(ARGS["staging-dir"]) > 0, cat(" --installroot ", ARGS["staging-dir"]), "") ^ - set pkgMgrOpts to when(isDistrolessAzureLinux, + set pkgMgrOpts to when(isDistrolessAzureLinux && isAzureLinux3, cat(" --releasever=", OS_VERSION_NUMBER, pkgMgrOpts), + pkgMgrOpts) ^ + set pkgMgrOpts to when(isDistrolessAzureLinux && !isAzureLinux3 && len(ARGS["staging-dir"]) > 0, + cat(" --use-host-config", pkgMgrOpts), pkgMgrOpts) }}{{InsertTemplate("Dockerfile.linux.install-pkgs", [ "pkgs": pkgs, - "pkg-mgr": when(isDistrolessAzureLinux, "tdnf", ""), + "pkg-mgr": when(isDistrolessAzureLinux && !isAzureLinux3, "dnf", when(isDistrolessAzureLinux, "tdnf", "")), "pkg-mgr-opts": pkgMgrOpts ])}} diff --git a/eng/dockerfile-templates/Dockerfile.linux.install-pkgs b/eng/dockerfile-templates/Dockerfile.linux.install-pkgs index 4c19ef7259..da219b0201 100644 --- a/eng/dockerfile-templates/Dockerfile.linux.install-pkgs +++ b/eng/dockerfile-templates/Dockerfile.linux.install-pkgs @@ -7,7 +7,8 @@ set isAlpine to find(OS_VERSION, "alpine") >= 0 ^ set isAzureLinux to find(OS_VERSION, "azurelinux") >= 0 ^ - set isDnf to ARGS["pkg-mgr"] = "dnf" ^ + set isAzureLinux3 to defined(match(OS_VERSION, "^azurelinux3")) ^ + set isDnf to ARGS["pkg-mgr"] = "dnf" || (isAzureLinux && !isAzureLinux3 && ARGS["pkg-mgr"] != "tdnf") ^ set isTdnf to ARGS["pkg-mgr"] = "tdnf" || (!isDnf && isAzureLinux) ^ set isApk to ARGS["pkg-mgr"] = "apk" || isAlpine ^ set appendPkgSuffix(pkg, index) to:{{ diff --git a/eng/dockerfile-templates/Dockerfile.linux.remove-pkgs b/eng/dockerfile-templates/Dockerfile.linux.remove-pkgs index c935d94a35..69a3c228c9 100644 --- a/eng/dockerfile-templates/Dockerfile.linux.remove-pkgs +++ b/eng/dockerfile-templates/Dockerfile.linux.remove-pkgs @@ -8,8 +8,9 @@ set isAlpine to find(OS_VERSION, "alpine") >= 0 ^ set isAzureLinux to find(OS_VERSION, "azurelinux") >= 0 ^ + set isAzureLinux3 to defined(match(OS_VERSION, "^azurelinux3")) ^ - set isDnf to ARGS["pkg-mgr"] = "dnf" ^ + set isDnf to ARGS["pkg-mgr"] = "dnf" || (isAzureLinux && !isAzureLinux3 && ARGS["pkg-mgr"] != "tdnf") ^ set isTdnf to ARGS["pkg-mgr"] = "tdnf" || (!isDnf && isAzureLinux) ^ set isApk to ARGS["pkg-mgr"] = "apk" || isAlpine ^ set isApt to ARGS["pkg-mgr"] = "apt-get" || (!isDnf && !isTdnf && !isApk) ^ @@ -29,10 +30,12 @@ set cleanCmd to when(isApk, "apk del", + when(isDnf, + "dnf clean all", when(isTdnf, "tdnf clean all", "apt-get autoremove \ -&& rm -rf /var/lib/apt/lists/*")) +&& rm -rf /var/lib/apt/lists/*"))) }}{{ removeCmd}}{{ARGS["pkg-mgr-opts"]}} \{{ diff --git a/eng/dockerfile-templates/aspire-dashboard/Dockerfile.linux b/eng/dockerfile-templates/aspire-dashboard/Dockerfile.linux index a30409336c..59ce18c2ed 100644 --- a/eng/dockerfile-templates/aspire-dashboard/Dockerfile.linux +++ b/eng/dockerfile-templates/aspire-dashboard/Dockerfile.linux @@ -7,7 +7,7 @@ cat("$REPO:", VARIABLES[cat("dotnet|8.0|product-version")], "-", OS_VERSION, "-extra", ARCH_TAG_SUFFIX) ^ set osVersionBase to match(OS_VERSION, ".+(?=.*-)")[0] ^ set installerImageTag to when(isAzureLinux, - cat("mcr.microsoft.com/azurelinux/base/core:", + cat(VARIABLES[cat("azurelinux|", OS_VERSION_NUMBER, "|repo")], "/base/core:", OS_VERSION_NUMBER), cat(ARCH_VERSIONED, "/buildpack-deps:", osVersionBase, "-curl")) ^ diff --git a/eng/dockerfile-templates/aspnet/Dockerfile.linux b/eng/dockerfile-templates/aspnet/Dockerfile.linux index c84230f0ef..c24106391c 100644 --- a/eng/dockerfile-templates/aspnet/Dockerfile.linux +++ b/eng/dockerfile-templates/aspnet/Dockerfile.linux @@ -24,7 +24,7 @@ set osVersionBase to when(isUbuntu && ARCH_VERSIONED = "arm32v7", "jammy", osVersionBase) ^ set installerImageTag to when(isDistrolessAzureLinux, - cat("mcr.microsoft.com/azurelinux/base/core:", + cat(VARIABLES[cat("azurelinux|", OS_VERSION_NUMBER, "|repo")], "/base/core:", OS_VERSION_NUMBER), when(isAlpine || isFullAzureLinux, runtimeBaseTag, @@ -42,7 +42,7 @@ ARG ACCESSTOKEN ^elif isFullAzureLinux: RUN {{InsertTemplate("../Dockerfile.linux.install-pkgs", [ - "pkgs": ["tar"] + "pkgs": when(OS_VERSION_NUMBER = "3.0", ["tar"], ["gzip", "tar"]) ])}} }} # Retrieve ASP.NET Core diff --git a/eng/dockerfile-templates/aspnet/Dockerfile.linux-composite b/eng/dockerfile-templates/aspnet/Dockerfile.linux-composite index 516832c6c7..e0cc8ea8f2 100644 --- a/eng/dockerfile-templates/aspnet/Dockerfile.linux-composite +++ b/eng/dockerfile-templates/aspnet/Dockerfile.linux-composite @@ -21,7 +21,7 @@ set osVersionBase to when(isUbuntu && ARCH_VERSIONED = "arm32v7", "jammy", osVersionBase) ^ set installerImageTag to when(isDistrolessAzureLinux, - cat("mcr.microsoft.com/azurelinux/base/core:", + cat(VARIABLES[cat("azurelinux|", OS_VERSION_NUMBER, "|repo")], "/base/core:", OS_VERSION_NUMBER), when(isAlpine || isFullAzureLinux, runtimeDepsBaseTag, @@ -37,7 +37,7 @@ ARG ACCESSTOKEN ^elif isFullAzureLinux: RUN {{InsertTemplate("../Dockerfile.linux.install-pkgs", [ - "pkgs": ["tar"] + "pkgs": when(OS_VERSION_NUMBER = "3.0", ["tar"], ["gzip", "tar"]) ])}} }} # Retrieve ASP.NET Composite Runtime diff --git a/eng/dockerfile-templates/monitor-base/Dockerfile.linux b/eng/dockerfile-templates/monitor-base/Dockerfile.linux index 977645e057..2071cac37a 100644 --- a/eng/dockerfile-templates/monitor-base/Dockerfile.linux +++ b/eng/dockerfile-templates/monitor-base/Dockerfile.linux @@ -28,7 +28,7 @@ cat("$REPO:", VARIABLES[cat("dotnet|", dotnetMajorMinor, "|product-version")], "-", OS_VERSION, ARCH_TAG_SUFFIX) ^ set osVersionBase to match(OS_VERSION, ".+(?=.*-)")[0] ^ set installerImageTag to when(isAzureLinux, - cat("mcr.microsoft.com/azurelinux/base/core:", + cat(VARIABLES[cat("azurelinux|", OS_VERSION_NUMBER, "|repo")], "/base/core:", OS_VERSION_NUMBER), cat(ARCH_VERSIONED, "/buildpack-deps:", osVersionBase, "-curl")) ^ set monitorBaseTemplate to when(monitorMajor != "8" && monitorMajor != "9", "Dockerfile.linux.install-monitor-base.10", "Dockerfile.linux.install-monitor-base") diff --git a/eng/dockerfile-templates/monitor/Dockerfile.linux b/eng/dockerfile-templates/monitor/Dockerfile.linux index a3bfcabdb6..7e1651cf4f 100644 --- a/eng/dockerfile-templates/monitor/Dockerfile.linux +++ b/eng/dockerfile-templates/monitor/Dockerfile.linux @@ -31,7 +31,7 @@ cat("$REPO:", VARIABLES[cat("monitor|", monitorMajorMinor, "|product-version")], monitorBaseTagOsSuffix, ARCH_TAG_SUFFIX) ^ set osVersionBase to match(OS_VERSION, ".+(?=.*-)")[0] ^ set installerImageTag to when(isAzureLinux, - cat("mcr.microsoft.com/azurelinux/base/core:", + cat(VARIABLES[cat("azurelinux|", OS_VERSION_NUMBER, "|repo")], "/base/core:", OS_VERSION_NUMBER), cat(ARCH_VERSIONED, "/buildpack-deps:", osVersionBase, "-curl")) ^ set extensionsTemplate to when(monitorMajor != "8" && monitorMajor != "9", "Dockerfile.linux.install-extensions.10", "Dockerfile.linux.install-extensions") diff --git a/eng/dockerfile-templates/runtime-deps/Dockerfile b/eng/dockerfile-templates/runtime-deps/Dockerfile index 8bdecd0f95..f6ceb38f8b 100644 --- a/eng/dockerfile-templates/runtime-deps/Dockerfile +++ b/eng/dockerfile-templates/runtime-deps/Dockerfile @@ -16,7 +16,7 @@ when(isUbuntu, "ubuntu.azurecr.io/ubuntu", when(isAzureLinux, - "mcr.microsoft.com/azurelinux/base/core", + cat(VARIABLES[cat("azurelinux|", OS_VERSION_NUMBER, "|repo")], "/base/core"), "")))) ^ set baseImageTag to when(isAlpine || isAzureLinux, OS_VERSION_NUMBER, OS_VERSION) ^ set baseImage to cat(baseImageRepo, ":", baseImageTag) ^ diff --git a/eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux b/eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux index 717c3a1008..aa5a2f9965 100644 --- a/eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux +++ b/eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux @@ -5,8 +5,10 @@ for example globalization support ^ set distrolessStagingDir to "/staging" ^ - set azureLinuxRepo to "mcr.microsoft.com/azurelinux" ^ + set azureLinuxRepo to VARIABLES[cat("azurelinux|", OS_VERSION_NUMBER, "|repo")] ^ set baseImage to cat(azureLinuxRepo, "/distroless/minimal:", OS_VERSION_NUMBER) ^ + set isAzureLinux3 to defined(match(OS_VERSION, "^azurelinux3")) ^ + set pkgMgrDir to when(isAzureLinux3, "tdnf", "dnf") ^ set username to "app" ^ set nonRootUser to "$APP_UID" ^ set uid to 1654 ^ @@ -16,7 +18,7 @@ FROM {{azureLinuxRepo}}/base/core:{{OS_VERSION_NUMBER}} AS installer RUN {{InsertTemplate("../Dockerfile.linux.install-pkgs", [ - "pkgs": ["gawk", "shadow-utils"] + "pkgs": when(isAzureLinux3, ["gawk", "shadow-utils"], ["shadow-utils"]) ])}} # Install .NET's dependencies into a staging location @@ -27,7 +29,7 @@ RUN mkdir {{distrolessStagingDir}} \ "is-extra": ARGS["is-extra"], "staging-dir": distrolessStagingDir ] - )}} + )}}{{if isAzureLinux3: # Generate RPM manifest file by appending to the original manifest file from base distroless image COPY --from={{baseImage}} /var/lib/rpmmanifest/container-manifest-2 /tmp/rpmmanifest @@ -35,7 +37,7 @@ 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 + && tac $tmpManifestPath | gawk '!x[$1]++' | sort > /staging/var/lib/rpmmanifest/container-manifest-2}} # Create a non-root user and group RUN {{InsertTemplate("Dockerfile.linux.non-root-user-staged", @@ -48,10 +50,14 @@ RUN {{InsertTemplate("Dockerfile.linux.non-root-user-staged", ])}} # Clean up staging -RUN rm -rf \ - {{distrolessStagingDir}}/etc/tdnf \ +RUN {{if !isAzureLinux3:\ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root {{distrolessStagingDir}} bash \ + && }}rm -rf \ + {{distrolessStagingDir}}/etc/{{pkgMgrDir}} \ {{distrolessStagingDir}}/run/* \ - {{distrolessStagingDir}}/var/cache/tdnf \ + {{distrolessStagingDir}}/var/cache/{{pkgMgrDir}} \ {{distrolessStagingDir}}/var/lib/rpm \ {{distrolessStagingDir}}/usr/share/doc \ {{distrolessStagingDir}}/usr/share/man \ diff --git a/eng/dockerfile-templates/runtime/Dockerfile.linux b/eng/dockerfile-templates/runtime/Dockerfile.linux index 70799e58a0..4ac1e8d5aa 100644 --- a/eng/dockerfile-templates/runtime/Dockerfile.linux +++ b/eng/dockerfile-templates/runtime/Dockerfile.linux @@ -25,7 +25,7 @@ set osVersionBase to when(isUbuntu && ARCH_VERSIONED = "arm32v7", "jammy", osVersionBase) ^ set installerImageTag to when(isDistrolessAzureLinux, - cat("mcr.microsoft.com/azurelinux/base/core:", + cat(VARIABLES[cat("azurelinux|", OS_VERSION_NUMBER, "|repo")], "/base/core:", OS_VERSION_NUMBER), when(isAlpine || isFullAzureLinux, runtimeDepsBaseTag, @@ -42,7 +42,7 @@ ARG ACCESSTOKEN ^elif isFullAzureLinux: RUN {{InsertTemplate("../Dockerfile.linux.install-pkgs", [ - "pkgs": ["tar"] + "pkgs": when(OS_VERSION_NUMBER = "3.0", ["tar"], ["gzip", "tar"]) ])}} }} # Retrieve .NET Runtime diff --git a/eng/dockerfile-templates/sdk/Dockerfile.linux b/eng/dockerfile-templates/sdk/Dockerfile.linux index 8c53d38412..a0c6cfa50f 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile.linux +++ b/eng/dockerfile-templates/sdk/Dockerfile.linux @@ -41,7 +41,7 @@ when(isAzureLinux, [ "git", - "libgcc-atomic", + when(OS_VERSION_NUMBER = "3.0", "libgcc-atomic", "libatomic"), "tar", ], [ @@ -72,7 +72,7 @@ ARG ACCESSTOKEN}} {{if isAzureLinux: RUN {{InsertTemplate("../Dockerfile.linux.install-pkgs", [ - "pkgs": ["tar"] + "pkgs": when(OS_VERSION_NUMBER = "3.0", ["tar"], ["gzip", "tar"]) ])}} }} # Install .NET SDK diff --git a/eng/dockerfile-templates/sdk/Dockerfile.linux.aot b/eng/dockerfile-templates/sdk/Dockerfile.linux.aot index 79bd834f06..c003c9209a 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile.linux.aot +++ b/eng/dockerfile-templates/sdk/Dockerfile.linux.aot @@ -15,11 +15,15 @@ "zlib-dev" ], when(isAzureLinux, + when(OS_VERSION_NUMBER = "3.0", [ "build-essential", "clang", "zlib-devel" ], + [ + "gcc" + ]), [ "clang", "zlib1g-dev", diff --git a/eng/dockerfile-templates/yarp/Dockerfile.linux b/eng/dockerfile-templates/yarp/Dockerfile.linux index 352d86e864..d8fe68e7ef 100644 --- a/eng/dockerfile-templates/yarp/Dockerfile.linux +++ b/eng/dockerfile-templates/yarp/Dockerfile.linux @@ -3,7 +3,7 @@ set yarpMajorMinor to cat(yarpVersionParts[0], ".", yarpVersionParts[1]) ^ set aspnetBaseTag to cat("$REPO:", VARIABLES[cat("dotnet|9.0|fixed-tag")], "-", OS_VERSION, ARCH_TAG_SUFFIX) ^ - set installerImageTag to cat("mcr.microsoft.com/azurelinux", "/base/core:", OS_VERSION_NUMBER) ^ + set installerImageTag to cat(VARIABLES[cat("azurelinux|", OS_VERSION_NUMBER, "|repo")], "/base/core:", OS_VERSION_NUMBER) ^ set baseUrl to VARIABLES[cat("yarp|", yarpMajorMinor, "|base-url|", VARIABLES["branch"])] ^ set baseChecksumUrl to VARIABLES[cat("yarp|", yarpMajorMinor, "|base-url|checksums|", VARIABLES["branch"])] ^ diff --git a/eng/mcr-tags-metadata-templates/aspnet-tags.yml b/eng/mcr-tags-metadata-templates/aspnet-tags.yml index 0e67b502c7..ad6c4f1459 100644 --- a/eng/mcr-tags-metadata-templates/aspnet-tags.yml +++ b/eng/mcr-tags-metadata-templates/aspnet-tags.yml @@ -13,6 +13,11 @@ $(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-azurelinux4.0|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux4.0-distroless|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux4.0-distroless-extra|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux4.0-distroless-composite|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux4.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) @@ -34,6 +39,11 @@ $(McrTagsYmlTagGroup:10.0-azurelinux3.0-distroless) $(McrTagsYmlTagGroup:10.0-azurelinux3.0-distroless-extra) $(McrTagsYmlTagGroup:10.0-azurelinux3.0-distroless-composite) $(McrTagsYmlTagGroup:10.0-azurelinux3.0-distroless-composite-extra) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0-distroless) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0-distroless-extra) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0-distroless-composite) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0-distroless-composite-extra) $(McrTagsYmlTagGroup:9.0-bookworm-slim) $(McrTagsYmlTagGroup:9.0-alpine3.23) $(McrTagsYmlTagGroup:9.0-alpine3.23-extra) diff --git a/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml b/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml index fa6761d2c8..d4f6aaaeda 100644 --- a/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml +++ b/eng/mcr-tags-metadata-templates/runtime-deps-tags.yml @@ -7,6 +7,9 @@ $(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:11.0-preview-azurelinux4.0|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux4.0-distroless|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux4.0-distroless-extra|.NET 11 Preview Tags) $(McrTagsYmlTagGroup:10.0-noble) $(McrTagsYmlTagGroup:10.0-noble-chiseled) $(McrTagsYmlTagGroup:10.0-noble-chiseled-extra) @@ -18,6 +21,9 @@ $(McrTagsYmlTagGroup:10.0-alpine3.23-extra) $(McrTagsYmlTagGroup:10.0-azurelinux3.0) $(McrTagsYmlTagGroup:10.0-azurelinux3.0-distroless) $(McrTagsYmlTagGroup:10.0-azurelinux3.0-distroless-extra) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0-distroless) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0-distroless-extra) $(McrTagsYmlTagGroup:9.0-bookworm-slim) $(McrTagsYmlTagGroup:9.0-alpine3.23) $(McrTagsYmlTagGroup:9.0-alpine3.23-extra) diff --git a/eng/mcr-tags-metadata-templates/runtime-tags.yml b/eng/mcr-tags-metadata-templates/runtime-tags.yml index 2820227662..818ae8c6c2 100644 --- a/eng/mcr-tags-metadata-templates/runtime-tags.yml +++ b/eng/mcr-tags-metadata-templates/runtime-tags.yml @@ -7,6 +7,9 @@ $(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:11.0-preview-azurelinux4.0|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux4.0-distroless|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux4.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) @@ -20,6 +23,9 @@ $(McrTagsYmlTagGroup:10.0-alpine3.23-extra) $(McrTagsYmlTagGroup:10.0-azurelinux3.0) $(McrTagsYmlTagGroup:10.0-azurelinux3.0-distroless) $(McrTagsYmlTagGroup:10.0-azurelinux3.0-distroless-extra) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0-distroless) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0-distroless-extra) $(McrTagsYmlTagGroup:9.0-bookworm-slim) $(McrTagsYmlTagGroup:9.0-alpine3.23) $(McrTagsYmlTagGroup:9.0-alpine3.23-extra) diff --git a/eng/mcr-tags-metadata-templates/sdk-tags.yml b/eng/mcr-tags-metadata-templates/sdk-tags.yml index eafcf9dbe5..20e6b5ee28 100644 --- a/eng/mcr-tags-metadata-templates/sdk-tags.yml +++ b/eng/mcr-tags-metadata-templates/sdk-tags.yml @@ -5,6 +5,8 @@ $(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-azurelinux4.0|.NET 11 Preview Tags) +$(McrTagsYmlTagGroup:11.0-preview-azurelinux4.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) @@ -15,6 +17,8 @@ $(McrTagsYmlTagGroup:10.0-alpine3.23) $(McrTagsYmlTagGroup:10.0-alpine3.23-aot) $(McrTagsYmlTagGroup:10.0-azurelinux3.0) $(McrTagsYmlTagGroup:10.0-azurelinux3.0-aot) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0) +$(McrTagsYmlTagGroup:10.0-azurelinux4.0-aot) $(McrTagsYmlTagGroup:9.0-bookworm-slim) $(McrTagsYmlTagGroup:9.0-alpine3.23) $(McrTagsYmlTagGroup:9.0-noble) diff --git a/eng/pipelines/stages/build-and-test.yml b/eng/pipelines/stages/build-and-test.yml index de05eed741..35bbda6054 100644 --- a/eng/pipelines/stages/build-and-test.yml +++ b/eng/pipelines/stages/build-and-test.yml @@ -62,6 +62,11 @@ stages: - template: /eng/pipelines/steps/set-public-source-branch-var.yml@self customBuildInitSteps: - template: /eng/pipelines/steps/set-public-source-branch-var.yml@self + - powershell: | + $imageBuilderBuildArgs = "$IMAGEBUILDERBUILDARGS --build-option `"--ulimit nofile=65536:65536`"" + echo "##vso[task.setvariable variable=imageBuilderBuildArgs]$imageBuilderBuildArgs" + displayName: Set ulimit Build Option + condition: and(succeeded(), ne(variables['osType'], 'windows')) - ${{ if parameters.storageAccountServiceConnection }}: - powershell: | $imageBuilderBuildArgs = "$IMAGEBUILDERBUILDARGS --internal" diff --git a/manifest.json b/manifest.json index f7b99804d8..fd2748ad4b 100644 --- a/manifest.json +++ b/manifest.json @@ -1513,6 +1513,37 @@ } ] }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0": {} + }, + "platforms": [ + { + "dockerfile": "src/runtime-deps/10.0/azurelinux4.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-amd64": {} + } + }, + { + "architecture": "arm64", + "dockerfile": "src/runtime-deps/10.0/azurelinux4.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { @@ -1562,6 +1593,55 @@ } ] }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless": {} + }, + "platforms": [ + { + "dockerfile": "src/runtime-deps/10.0/azurelinux4.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "dockerfile": "src/runtime-deps/10.0/azurelinux4.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] + } + ] + }, { "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { @@ -1611,6 +1691,55 @@ } ] }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-extra": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-extra": {} + }, + "platforms": [ + { + "dockerfile": "src/runtime-deps/10.0/azurelinux4.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-extra-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "dockerfile": "src/runtime-deps/10.0/azurelinux4.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-extra-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] + } + ] + }, { "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { @@ -2160,6 +2289,37 @@ } ] }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0": {} + }, + "platforms": [ + { + "dockerfile": "src/runtime-deps/11.0/azurelinux4.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-amd64": {} + } + }, + { + "architecture": "arm64", + "dockerfile": "src/runtime-deps/11.0/azurelinux4.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { @@ -2209,6 +2369,55 @@ } ] }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless": {} + }, + "platforms": [ + { + "dockerfile": "src/runtime-deps/11.0/azurelinux4.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "dockerfile": "src/runtime-deps/11.0/azurelinux4.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] + } + ] + }, { "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { @@ -2258,6 +2467,55 @@ } ] }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-extra": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-extra": {} + }, + "platforms": [ + { + "dockerfile": "src/runtime-deps/11.0/azurelinux4.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "dockerfile": "src/runtime-deps/11.0/azurelinux4.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime-deps/Dockerfile.distroless-azurelinux.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] + } + ] + }, { "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { @@ -4160,6 +4418,43 @@ } ] }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/azurelinux4.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/azurelinux4.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { @@ -4218,35 +4513,28 @@ { "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": {} + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/10.0/azurelinux3.0-distroless-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/runtime/10.0/azurelinux4.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "azurelinux4.0-distroless", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-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" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" ] } ] @@ -4256,13 +4544,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/runtime/10.0/azurelinux3.0-distroless-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "dockerfile": "src/runtime/10.0/azurelinux4.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "azurelinux4.0-distroless", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -4270,14 +4558,7 @@ "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" + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" ] } ] @@ -4287,18 +4568,156 @@ { "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-noble-chiseled": {}, - "$(dotnet|10.0|minor-tag)-noble-chiseled": {} + "$(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/noble-chiseled/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "dockerfile": "src/runtime/10.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|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|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-extra": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/azurelinux4.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-extra-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|10.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/10.0/azurelinux4.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-extra-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|10.0|minor-tag)-azurelinux4.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-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": {} @@ -4985,6 +5404,43 @@ } ] }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/11.0/azurelinux4.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/11.0/azurelinux4.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { @@ -5040,6 +5496,61 @@ } ] }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/11.0/azurelinux4.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/11.0/azurelinux4.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] + } + ] + }, { "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { @@ -5109,6 +5620,75 @@ } ] }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-extra": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/11.0/azurelinux4.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|11.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/runtime/11.0/azurelinux4.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/runtime/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:runtime):$(dotnet|11.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] + } + ] + }, { "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { @@ -8042,21 +8622,58 @@ { "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless": {} + "$(dotnet|10.0|fixed-tag)-azurelinux4.0": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/10.0/azurelinux3.0-distroless/amd64", + "dockerfile": "src/aspnet/10.0/azurelinux4.0/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "azurelinux4.0", "tags": { - "$(dotnet|10.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, - "$(dotnet|10.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/10.0/azurelinux4.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.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)" + }, + "dockerfile": "src/aspnet/10.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": {} }, "customBuildLegGroups": [ { @@ -8108,6 +8725,75 @@ } ] }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/10.0/azurelinux4.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/10.0/azurelinux4.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] + } + ] + }, { "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { @@ -8177,6 +8863,75 @@ } ] }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-extra": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/10.0/azurelinux4.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-extra-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/10.0/azurelinux4.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-extra-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] + } + ] + }, { "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { @@ -8246,6 +9001,75 @@ } ] }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-composite": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-composite": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/10.0/azurelinux4.0-distroless-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-composite-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-composite-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/10.0/azurelinux4.0-distroless-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-composite-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-composite-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] + } + ] + }, { "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { @@ -8315,6 +9139,75 @@ } ] }, + { + "productVersion": "$(dotnet|10.0|product-version)", + "sharedTags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-composite-extra": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-composite-extra": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/10.0/azurelinux4.0-distroless-composite-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-composite-extra-amd64": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-composite-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime-deps)" + }, + "dockerfile": "src/aspnet/10.0/azurelinux4.0-distroless-composite-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|10.0|fixed-tag)-azurelinux4.0-distroless-composite-extra-arm64v8": {}, + "$(dotnet|10.0|minor-tag)-azurelinux4.0-distroless-composite-extra-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] + } + ] + }, { "productVersion": "$(dotnet|10.0|product-version)", "sharedTags": { @@ -9318,81 +10211,394 @@ "dockerfile": "src/aspnet/11.0/alpine3.23-composite-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "alpine3.23", + "osVersion": "alpine3.23", + "tags": { + "$(dotnet|11.0|fixed-tag)-alpine3.23-composite-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine3.23-composite-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-alpine-composite-extra-arm64v8": {} + }, + "customBuildLegGroups": [ + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-alpine3.23-arm64v8" + ] + } + ], + "architecture": "arm64", + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(dotnet|11.0|fixed-tag)-azurelinux3.0": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/11.0/azurelinux3.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/11.0/azurelinux3.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/11.0/azurelinux4.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/11.0/azurelinux4.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(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|11.0|minor-tag)-azurelinux3.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/11.0/azurelinux4.0-distroless/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "dockerfile": "src/aspnet/11.0/azurelinux4.0-distroless/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0-distroless", + "tags": { + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-arm64v8": {} + }, + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] + } + ] + }, + { + "productVersion": "$(dotnet|11.0|product-version)", + "sharedTags": { + "$(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/11.0/azurelinux3.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "os": "linux", + "osVersion": "azurelinux3.0-distroless", + "tags": { + "$(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|11.0|minor-tag)-azurelinux3.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" + ] + } + ] + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:runtime)" + }, + "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|11.0|fixed-tag)-alpine3.23-composite-extra-arm64v8": {}, - "$(dotnet|11.0|minor-tag)-alpine3.23-composite-extra-arm64v8": {}, - "$(dotnet|11.0|minor-tag)-alpine-composite-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|11.0|minor-tag)-azurelinux3.0-arm64v8" + ] + }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|11.0|minor-tag)-alpine3.23-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" ] } - ], - "architecture": "arm64", - "variant": "v8" + ] } ] }, { "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|11.0|fixed-tag)-azurelinux3.0": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0": {} + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-extra": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/11.0/azurelinux3.0/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/11.0/azurelinux4.0-distroless-extra/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "azurelinux3.0", + "osVersion": "azurelinux4.0-distroless", "tags": { - "$(dotnet|11.0|fixed-tag)-azurelinux3.0-amd64": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-amd64": {} - } + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-extra-amd64": {} + }, + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" + ] + } + ] }, { "architecture": "arm64", "buildArgs": { "REPO": "$(Repo:runtime)" }, - "dockerfile": "src/aspnet/11.0/azurelinux3.0/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "dockerfile": "src/aspnet/11.0/azurelinux4.0-distroless-extra/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", "os": "linux", - "osVersion": "azurelinux3.0", + "osVersion": "azurelinux4.0-distroless", "tags": { - "$(dotnet|11.0|fixed-tag)-azurelinux3.0-arm64v8": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-extra-arm64v8": {} }, - "variant": "v8" + "variant": "v8", + "customBuildLegGroups": [ + { + "name": "pr-build", + "type": "Supplemental", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" + ] + }, + { + "name": "test-dependencies", + "type": "Integral", + "dependencies": [ + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" + ] + } + ] } ] }, { "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "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|11.0|fixed-tag)-azurelinux3.0-distroless-amd64": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-amd64": {} }, "customBuildLegGroups": [ { @@ -9414,15 +10620,15 @@ { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux", + "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|11.0|fixed-tag)-azurelinux3.0-distroless-arm64v8": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -9447,35 +10653,35 @@ { "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra": {} + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-composite": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-composite": {} }, "platforms": [ { "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless-extra/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/11.0/azurelinux4.0-distroless-composite/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "azurelinux4.0-distroless", "tags": { - "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra-amd64": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-composite-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-composite-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" ] } ] @@ -9483,15 +10689,15 @@ { "architecture": "arm64", "buildArgs": { - "REPO": "$(Repo:runtime)" + "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless-extra/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux.extra", + "dockerfile": "src/aspnet/11.0/azurelinux4.0-distroless-composite/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "azurelinux4.0-distroless", "tags": { - "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-extra-arm64v8": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-extra-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-composite-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-composite-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -9499,14 +10705,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" ] } ] @@ -9516,21 +10722,21 @@ { "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite": {} + "$(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/11.0/azurelinux3.0-distroless-composite/amd64", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "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|11.0|fixed-tag)-azurelinux3.0-distroless-composite-amd64": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-extra-amd64": {} }, "customBuildLegGroups": [ { @@ -9554,13 +10760,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless-composite/arm64v8", - "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite", + "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|11.0|fixed-tag)-azurelinux3.0-distroless-composite-arm64v8": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-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": [ @@ -9585,35 +10791,35 @@ { "productVersion": "$(dotnet|11.0|product-version)", "sharedTags": { - "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite-extra": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-extra": {} + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-composite-extra": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-composite-extra": {} }, "platforms": [ { "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/amd64", + "dockerfile": "src/aspnet/11.0/azurelinux4.0-distroless-composite-extra/amd64", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "azurelinux4.0-distroless", "tags": { - "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-amd64": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-extra-amd64": {} + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-composite-extra-amd64": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-composite-extra-amd64": {} }, "customBuildLegGroups": [ { "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-amd64" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-amd64" ] } ] @@ -9623,13 +10829,13 @@ "buildArgs": { "REPO": "$(Repo:runtime-deps)" }, - "dockerfile": "src/aspnet/11.0/azurelinux3.0-distroless-composite-extra/arm64v8", + "dockerfile": "src/aspnet/11.0/azurelinux4.0-distroless-composite-extra/arm64v8", "dockerfileTemplate": "eng/dockerfile-templates/aspnet/Dockerfile.linux-composite.extra", "os": "linux", - "osVersion": "azurelinux3.0-distroless", + "osVersion": "azurelinux4.0-distroless", "tags": { - "$(dotnet|11.0|fixed-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {}, - "$(dotnet|11.0|minor-tag)-azurelinux3.0-distroless-composite-extra-arm64v8": {} + "$(dotnet|11.0|fixed-tag)-azurelinux4.0-distroless-composite-extra-arm64v8": {}, + "$(dotnet|11.0|minor-tag)-azurelinux4.0-distroless-composite-extra-arm64v8": {} }, "variant": "v8", "customBuildLegGroups": [ @@ -9637,14 +10843,14 @@ "name": "pr-build", "type": "Supplemental", "dependencies": [ - "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" ] }, { "name": "test-dependencies", "type": "Integral", "dependencies": [ - "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux3.0-arm64v8" + "$(Repo:sdk):$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8" ] } ] @@ -10975,6 +12181,43 @@ } ] }, + { + "productVersion": "$(sdk|10.0|product-version)", + "sharedTags": { + "$(sdk|10.0|fixed-tag)-azurelinux4.0": {}, + "$(sdk|10.0|minor-tag)-azurelinux4.0": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "dockerfile": "src/sdk/10.0/azurelinux4.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(sdk|10.0|fixed-tag)-azurelinux4.0-amd64": {}, + "$(sdk|10.0|minor-tag)-azurelinux4.0-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "dockerfile": "src/sdk/10.0/azurelinux4.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(sdk|10.0|fixed-tag)-azurelinux4.0-arm64v8": {}, + "$(sdk|10.0|minor-tag)-azurelinux4.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(sdk|10.0|product-version)", "sharedTags": { @@ -11012,6 +12255,43 @@ } ] }, + { + "productVersion": "$(sdk|10.0|product-version)", + "sharedTags": { + "$(sdk|10.0|fixed-tag)-azurelinux4.0-aot": {}, + "$(sdk|10.0|minor-tag)-azurelinux4.0-aot": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:sdk)" + }, + "dockerfile": "src/sdk/10.0/azurelinux4.0-aot/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux.aot", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(sdk|10.0|fixed-tag)-azurelinux4.0-aot-amd64": {}, + "$(sdk|10.0|minor-tag)-azurelinux4.0-aot-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:sdk)" + }, + "dockerfile": "src/sdk/10.0/azurelinux4.0-aot/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux.aot", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(sdk|10.0|fixed-tag)-azurelinux4.0-aot-arm64v8": {}, + "$(sdk|10.0|minor-tag)-azurelinux4.0-aot-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(sdk|10.0|product-version)", "platforms": [ @@ -11329,6 +12609,43 @@ } ] }, + { + "productVersion": "$(sdk|11.0|product-version)", + "sharedTags": { + "$(sdk|11.0|fixed-tag)-azurelinux4.0": {}, + "$(sdk|11.0|minor-tag)-azurelinux4.0": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "dockerfile": "src/sdk/11.0/azurelinux4.0/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(sdk|11.0|fixed-tag)-azurelinux4.0-amd64": {}, + "$(sdk|11.0|minor-tag)-azurelinux4.0-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:aspnet)" + }, + "dockerfile": "src/sdk/11.0/azurelinux4.0/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(sdk|11.0|fixed-tag)-azurelinux4.0-arm64v8": {}, + "$(sdk|11.0|minor-tag)-azurelinux4.0-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(sdk|11.0|product-version)", "sharedTags": { @@ -11366,6 +12683,43 @@ } ] }, + { + "productVersion": "$(sdk|11.0|product-version)", + "sharedTags": { + "$(sdk|11.0|fixed-tag)-azurelinux4.0-aot": {}, + "$(sdk|11.0|minor-tag)-azurelinux4.0-aot": {} + }, + "platforms": [ + { + "buildArgs": { + "REPO": "$(Repo:sdk)" + }, + "dockerfile": "src/sdk/11.0/azurelinux4.0-aot/amd64", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux.aot", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(sdk|11.0|fixed-tag)-azurelinux4.0-aot-amd64": {}, + "$(sdk|11.0|minor-tag)-azurelinux4.0-aot-amd64": {} + } + }, + { + "architecture": "arm64", + "buildArgs": { + "REPO": "$(Repo:sdk)" + }, + "dockerfile": "src/sdk/11.0/azurelinux4.0-aot/arm64v8", + "dockerfileTemplate": "eng/dockerfile-templates/sdk/Dockerfile.linux.aot", + "os": "linux", + "osVersion": "azurelinux4.0", + "tags": { + "$(sdk|11.0|fixed-tag)-azurelinux4.0-aot-arm64v8": {}, + "$(sdk|11.0|minor-tag)-azurelinux4.0-aot-arm64v8": {} + }, + "variant": "v8" + } + ] + }, { "productVersion": "$(sdk|11.0|product-version)", "platforms": [ diff --git a/manifest.versions.json b/manifest.versions.json index dbb3901e52..f3a887b8c1 100644 --- a/manifest.versions.json +++ b/manifest.versions.json @@ -12,6 +12,9 @@ "base-url|public-checksums|preview|main": "https://ci.dot.net/public-checksums", "base-url|public-checksums|preview|nightly": "https://ci.dot.net/public-checksums", + "azurelinux|3.0|repo": "mcr.microsoft.com/azurelinux", + "azurelinux|4.0|repo": "mcr.microsoft.com/azurelinux-beta", + "alpine|floating-tag-version": "alpine3.23", "alpine|11.0|floating-tag-version": "$(alpine|floating-tag-version)", "alpine|10.0|floating-tag-version": "$(alpine|floating-tag-version)", diff --git a/src/aspnet/10.0/azurelinux4.0-distroless-composite-extra/amd64/Dockerfile b/src/aspnet/10.0/azurelinux4.0-distroless-composite-extra/amd64/Dockerfile new file mode 100644 index 0000000000..ab83d27f82 --- /dev/null +++ b/src/aspnet/10.0/azurelinux4.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-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && sha512sum -c aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-extra-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=10.0.8 \ + # ASP.NET Core version + ASPNET_VERSION=10.0.8 + +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/10.0/azurelinux4.0-distroless-composite-extra/arm64v8/Dockerfile b/src/aspnet/10.0/azurelinux4.0-distroless-composite-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..67721aa7bf --- /dev/null +++ b/src/aspnet/10.0/azurelinux4.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-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && sha512sum -c aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-extra-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=10.0.8 \ + # ASP.NET Core version + ASPNET_VERSION=10.0.8 + +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/10.0/azurelinux4.0-distroless-composite/amd64/Dockerfile b/src/aspnet/10.0/azurelinux4.0-distroless-composite/amd64/Dockerfile new file mode 100644 index 0000000000..1deb9b6c74 --- /dev/null +++ b/src/aspnet/10.0/azurelinux4.0-distroless-composite/amd64/Dockerfile @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && sha512sum -c aspnetcore-runtime-composite-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=10.0.8 \ + # ASP.NET Core version + ASPNET_VERSION=10.0.8 + +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/10.0/azurelinux4.0-distroless-composite/arm64v8/Dockerfile b/src/aspnet/10.0/azurelinux4.0-distroless-composite/arm64v8/Dockerfile new file mode 100644 index 0000000000..79368ac23b --- /dev/null +++ b/src/aspnet/10.0/azurelinux4.0-distroless-composite/arm64v8/Dockerfile @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && sha512sum -c aspnetcore-runtime-composite-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=10.0.8 \ + # ASP.NET Core version + ASPNET_VERSION=10.0.8 + +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/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile b/src/aspnet/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile new file mode 100644 index 0000000000..ea1f5bb36e --- /dev/null +++ b/src/aspnet/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && sha512sum -c aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-extra-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=10.0.8 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile b/src/aspnet/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..0a91553af1 --- /dev/null +++ b/src/aspnet/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && sha512sum -c aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-extra-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=10.0.8 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/10.0/azurelinux4.0-distroless/amd64/Dockerfile b/src/aspnet/10.0/azurelinux4.0-distroless/amd64/Dockerfile new file mode 100644 index 0000000000..c9ecc88897 --- /dev/null +++ b/src/aspnet/10.0/azurelinux4.0-distroless/amd64/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && sha512sum -c aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=10.0.8 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile b/src/aspnet/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile new file mode 100644 index 0000000000..b58c612069 --- /dev/null +++ b/src/aspnet/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && sha512sum -c aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=10.0.8 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/10.0/azurelinux4.0/amd64/Dockerfile b/src/aspnet/10.0/azurelinux4.0/amd64/Dockerfile new file mode 100644 index 0000000000..81bd1a04e9 --- /dev/null +++ b/src/aspnet/10.0/azurelinux4.0/amd64/Dockerfile @@ -0,0 +1,30 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:10.0.8-azurelinux4.0-amd64 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && sha512sum -c aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=10.0.8 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/10.0/azurelinux4.0/arm64v8/Dockerfile b/src/aspnet/10.0/azurelinux4.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..02553fee78 --- /dev/null +++ b/src/aspnet/10.0/azurelinux4.0/arm64v8/Dockerfile @@ -0,0 +1,30 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:10.0.8-azurelinux4.0-arm64v8 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && sha512sum -c aspnetcore-runtime-$aspnetcore_version-linux-arm64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=10.0.8 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux4.0-distroless-composite-extra/amd64/Dockerfile b/src/aspnet/11.0/azurelinux4.0-distroless-composite-extra/amd64/Dockerfile new file mode 100644 index 0000000000..750c8e48ba --- /dev/null +++ b/src/aspnet/11.0/azurelinux4.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-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-extra-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-preview.5.26302.115 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-preview.5.26302.115 + +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/azurelinux4.0-distroless-composite-extra/arm64v8/Dockerfile b/src/aspnet/11.0/azurelinux4.0-distroless-composite-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..c729c649ef --- /dev/null +++ b/src/aspnet/11.0/azurelinux4.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-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-extra-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-preview.5.26302.115 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-preview.5.26302.115 + +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/azurelinux4.0-distroless-composite/amd64/Dockerfile b/src/aspnet/11.0/azurelinux4.0-distroless-composite/amd64/Dockerfile new file mode 100644 index 0000000000..475c7b3595 --- /dev/null +++ b/src/aspnet/11.0/azurelinux4.0-distroless-composite/amd64/Dockerfile @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-amd64 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-preview.5.26302.115 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-preview.5.26302.115 + +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/azurelinux4.0-distroless-composite/arm64v8/Dockerfile b/src/aspnet/11.0/azurelinux4.0-distroless-composite/arm64v8/Dockerfile new file mode 100644 index 0000000000..04574ceb5d --- /dev/null +++ b/src/aspnet/11.0/azurelinux4.0-distroless-composite/arm64v8/Dockerfile @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-arm64v8 + +ENV \ + # .NET Runtime version + DOTNET_VERSION=11.0.0-preview.5.26302.115 \ + # ASP.NET Core version + ASPNET_VERSION=11.0.0-preview.5.26302.115 + +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/azurelinux4.0-distroless-extra/amd64/Dockerfile b/src/aspnet/11.0/azurelinux4.0-distroless-extra/amd64/Dockerfile new file mode 100644 index 0000000000..89e3f60c1e --- /dev/null +++ b/src/aspnet/11.0/azurelinux4.0-distroless-extra/amd64/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-extra-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-preview.5.26302.115 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile b/src/aspnet/11.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..fa62aed635 --- /dev/null +++ b/src/aspnet/11.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-extra-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-preview.5.26302.115 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux4.0-distroless/amd64/Dockerfile b/src/aspnet/11.0/azurelinux4.0-distroless/amd64/Dockerfile new file mode 100644 index 0000000000..4f4c61268c --- /dev/null +++ b/src/aspnet/11.0/azurelinux4.0-distroless/amd64/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-preview.5.26302.115 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux4.0-distroless/arm64v8/Dockerfile b/src/aspnet/11.0/azurelinux4.0-distroless/arm64v8/Dockerfile new file mode 100644 index 0000000000..82bdc9bdd5 --- /dev/null +++ b/src/aspnet/11.0/azurelinux4.0-distroless/arm64v8/Dockerfile @@ -0,0 +1,31 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-preview.5.26302.115 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux4.0/amd64/Dockerfile b/src/aspnet/11.0/azurelinux4.0/amd64/Dockerfile new file mode 100644 index 0000000000..ae0facff37 --- /dev/null +++ b/src/aspnet/11.0/azurelinux4.0/amd64/Dockerfile @@ -0,0 +1,30 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:11.0.0-preview.5-azurelinux4.0-amd64 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-amd64 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-preview.5.26302.115 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/aspnet/11.0/azurelinux4.0/arm64v8/Dockerfile b/src/aspnet/11.0/azurelinux4.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..168ef846d9 --- /dev/null +++ b/src/aspnet/11.0/azurelinux4.0/arm64v8/Dockerfile @@ -0,0 +1,30 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:11.0.0-preview.5-azurelinux4.0-arm64v8 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-arm64v8 + +# ASP.NET Core version +ENV ASPNET_VERSION=11.0.0-preview.5.26302.115 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] diff --git a/src/runtime-deps/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile b/src/runtime-deps/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile new file mode 100644 index 0000000000..5ff1782f12 --- /dev/null +++ b/src/runtime-deps/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile b/src/runtime-deps/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..5ff1782f12 --- /dev/null +++ b/src/runtime-deps/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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/10.0/azurelinux4.0-distroless/amd64/Dockerfile b/src/runtime-deps/10.0/azurelinux4.0-distroless/amd64/Dockerfile new file mode 100644 index 0000000000..f275abacce --- /dev/null +++ b/src/runtime-deps/10.0/azurelinux4.0-distroless/amd64/Dockerfile @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile b/src/runtime-deps/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile new file mode 100644 index 0000000000..f275abacce --- /dev/null +++ b/src/runtime-deps/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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/10.0/azurelinux4.0/amd64/Dockerfile b/src/runtime-deps/10.0/azurelinux4.0/amd64/Dockerfile new file mode 100644 index 0000000000..303a068fe7 --- /dev/null +++ b/src/runtime-deps/10.0/azurelinux4.0/amd64/Dockerfile @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.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 dnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all + +# Create a non-root user and group +RUN dnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && dnf remove -y \ + shadow-utils \ + && dnf clean all diff --git a/src/runtime-deps/10.0/azurelinux4.0/arm64v8/Dockerfile b/src/runtime-deps/10.0/azurelinux4.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..303a068fe7 --- /dev/null +++ b/src/runtime-deps/10.0/azurelinux4.0/arm64v8/Dockerfile @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.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 dnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all + +# Create a non-root user and group +RUN dnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && dnf remove -y \ + shadow-utils \ + && dnf clean all diff --git a/src/runtime-deps/11.0/azurelinux4.0-distroless-extra/amd64/Dockerfile b/src/runtime-deps/11.0/azurelinux4.0-distroless-extra/amd64/Dockerfile new file mode 100644 index 0000000000..5ff1782f12 --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux4.0-distroless-extra/amd64/Dockerfile @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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/azurelinux4.0-distroless-extra/arm64v8/Dockerfile b/src/runtime-deps/11.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..5ff1782f12 --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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/azurelinux4.0-distroless/amd64/Dockerfile b/src/runtime-deps/11.0/azurelinux4.0-distroless/amd64/Dockerfile new file mode 100644 index 0000000000..f275abacce --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux4.0-distroless/amd64/Dockerfile @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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/azurelinux4.0-distroless/arm64v8/Dockerfile b/src/runtime-deps/11.0/azurelinux4.0-distroless/arm64v8/Dockerfile new file mode 100644 index 0000000000..f275abacce --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux4.0-distroless/arm64v8/Dockerfile @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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/azurelinux4.0/amd64/Dockerfile b/src/runtime-deps/11.0/azurelinux4.0/amd64/Dockerfile new file mode 100644 index 0000000000..303a068fe7 --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux4.0/amd64/Dockerfile @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.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 dnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all + +# Create a non-root user and group +RUN dnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && dnf remove -y \ + shadow-utils \ + && dnf clean all diff --git a/src/runtime-deps/11.0/azurelinux4.0/arm64v8/Dockerfile b/src/runtime-deps/11.0/azurelinux4.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..303a068fe7 --- /dev/null +++ b/src/runtime-deps/11.0/azurelinux4.0/arm64v8/Dockerfile @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.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 dnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all + +# Create a non-root user and group +RUN dnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && dnf remove -y \ + shadow-utils \ + && dnf clean all diff --git a/src/runtime/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile b/src/runtime/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile new file mode 100644 index 0000000000..17c816f6b0 --- /dev/null +++ b/src/runtime/10.0/azurelinux4.0-distroless-extra/amd64/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && sha512sum -c dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-extra-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=10.0.8 + +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/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile b/src/runtime/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..7fd4b920b8 --- /dev/null +++ b/src/runtime/10.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && sha512sum -c dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-extra-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=10.0.8 + +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/10.0/azurelinux4.0-distroless/amd64/Dockerfile b/src/runtime/10.0/azurelinux4.0-distroless/amd64/Dockerfile new file mode 100644 index 0000000000..0b3084ab62 --- /dev/null +++ b/src/runtime/10.0/azurelinux4.0-distroless/amd64/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && sha512sum -c dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=10.0.8 + +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/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile b/src/runtime/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile new file mode 100644 index 0000000000..4ba48b4a53 --- /dev/null +++ b/src/runtime/10.0/azurelinux4.0-distroless/arm64v8/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && sha512sum -c dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-distroless-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=10.0.8 + +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/10.0/azurelinux4.0/amd64/Dockerfile b/src/runtime/10.0/azurelinux4.0/amd64/Dockerfile new file mode 100644 index 0000000000..8368161105 --- /dev/null +++ b/src/runtime/10.0/azurelinux4.0/amd64/Dockerfile @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:10.0.8-azurelinux4.0-amd64 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && sha512sum -c dotnet-runtime-$dotnet_version-linux-x64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=10.0.8 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/10.0/azurelinux4.0/arm64v8/Dockerfile b/src/runtime/10.0/azurelinux4.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..8505d63c0d --- /dev/null +++ b/src/runtime/10.0/azurelinux4.0/arm64v8/Dockerfile @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:10.0.8-azurelinux4.0-arm64v8 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=10.0.8 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Runtime/$dotnet_version/dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && sha512sum -c dotnet-runtime-$dotnet_version-linux-arm64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.0-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=10.0.8 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/11.0/azurelinux4.0-distroless-extra/amd64/Dockerfile b/src/runtime/11.0/azurelinux4.0-distroless-extra/amd64/Dockerfile new file mode 100644 index 0000000000..3626ef8a55 --- /dev/null +++ b/src/runtime/11.0/azurelinux4.0-distroless-extra/amd64/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-extra-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-preview.5.26302.115 + +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/azurelinux4.0-distroless-extra/arm64v8/Dockerfile b/src/runtime/11.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile new file mode 100644 index 0000000000..8a6a276c4e --- /dev/null +++ b/src/runtime/11.0/azurelinux4.0-distroless-extra/arm64v8/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-extra-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-preview.5.26302.115 + +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/azurelinux4.0-distroless/amd64/Dockerfile b/src/runtime/11.0/azurelinux4.0-distroless/amd64/Dockerfile new file mode 100644 index 0000000000..bb5de2f6e2 --- /dev/null +++ b/src/runtime/11.0/azurelinux4.0-distroless/amd64/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-preview.5.26302.115 + +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/azurelinux4.0-distroless/arm64v8/Dockerfile b/src/runtime/11.0/azurelinux4.0-distroless/arm64v8/Dockerfile new file mode 100644 index 0000000000..66381ddd57 --- /dev/null +++ b/src/runtime/11.0/azurelinux4.0-distroless/arm64v8/Dockerfile @@ -0,0 +1,38 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-distroless-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-preview.5.26302.115 + +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/azurelinux4.0/amd64/Dockerfile b/src/runtime/11.0/azurelinux4.0/amd64/Dockerfile new file mode 100644 index 0000000000..36be243345 --- /dev/null +++ b/src/runtime/11.0/azurelinux4.0/amd64/Dockerfile @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:11.0.0-preview.5-azurelinux4.0-amd64 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-amd64 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-preview.5.26302.115 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/runtime/11.0/azurelinux4.0/arm64v8/Dockerfile b/src/runtime/11.0/azurelinux4.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..35a545ecd9 --- /dev/null +++ b/src/runtime/11.0/azurelinux4.0/arm64v8/Dockerfile @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:11.0.0-preview.5-azurelinux4.0-arm64v8 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=11.0.0-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.0-arm64v8 + +# .NET Runtime version +ENV DOTNET_VERSION=11.0.0-preview.5.26302.115 + +COPY --from=installer ["/dotnet", "/usr/share/dotnet"] + +RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet diff --git a/src/sdk/10.0/azurelinux4.0-aot/amd64/Dockerfile b/src/sdk/10.0/azurelinux4.0-aot/amd64/Dockerfile new file mode 100644 index 0000000000..50f5562c80 --- /dev/null +++ b/src/sdk/10.0/azurelinux4.0-aot/amd64/Dockerfile @@ -0,0 +1,6 @@ +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:10.0.300-azurelinux4.0-amd64 + +RUN dnf install -y \ + gcc \ + && dnf clean all diff --git a/src/sdk/10.0/azurelinux4.0-aot/arm64v8/Dockerfile b/src/sdk/10.0/azurelinux4.0-aot/arm64v8/Dockerfile new file mode 100644 index 0000000000..d2d2bfa9ff --- /dev/null +++ b/src/sdk/10.0/azurelinux4.0-aot/arm64v8/Dockerfile @@ -0,0 +1,6 @@ +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:10.0.300-azurelinux4.0-arm64v8 + +RUN dnf install -y \ + gcc \ + && dnf clean all diff --git a/src/sdk/10.0/azurelinux4.0/amd64/Dockerfile b/src/sdk/10.0/azurelinux4.0/amd64/Dockerfile new file mode 100644 index 0000000000..dbf0fefe86 --- /dev/null +++ b/src/sdk/10.0/azurelinux4.0/amd64/Dockerfile @@ -0,0 +1,67 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:10.0.8-azurelinux4.0-amd64 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Install .NET SDK +RUN dotnet_sdk_version=10.0.300 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512 \ + && sha512sum -c dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.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=10.0.300 \ + # 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-4.0 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN dnf install -y \ + git \ + libatomic \ + tar \ + && dnf 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.2 \ + && 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='c97cbad25218d4e5048ec827f15c2a86df893e6f0a36511005cdf0321f4e1c630cdfd0fc78ad8b82ce75ba6e0a218c35e6bada88a0c2caac91af381642c55720' \ + && 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 \ + && chmod 755 /usr/share/powershell/.store/powershell.linux.x64/$powershell_version/powershell.linux.x64/$powershell_version/tools/*/any/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/10.0/azurelinux4.0/arm64v8/Dockerfile b/src/sdk/10.0/azurelinux4.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..826b57dc03 --- /dev/null +++ b/src/sdk/10.0/azurelinux4.0/arm64v8/Dockerfile @@ -0,0 +1,67 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:10.0.8-azurelinux4.0-arm64v8 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Install .NET SDK +RUN dotnet_sdk_version=10.0.300 \ + && curl --fail --show-error --location \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz \ + --remote-name https://builds.dotnet.microsoft.com/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512 \ + && sha512sum -c dotnet-sdk-$dotnet_sdk_version-linux-arm64.tar.gz.sha512 \ + && 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:10.0.8-azurelinux4.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=10.0.300 \ + # 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-4.0-arm64 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN dnf install -y \ + git \ + libatomic \ + tar \ + && dnf 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.2 \ + && 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='49bab4ad4f45a70c72c519f441a5c0a08fe6037671becc974732d7b09cc871ddbdac76ee5f93277ccad4ee68fb397880904a30fe465c56748ea7f0e7ad4d7ce6' \ + && 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 \ + && chmod 755 /usr/share/powershell/.store/powershell.linux.arm64/$powershell_version/powershell.linux.arm64/$powershell_version/tools/*/any/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/azurelinux4.0-aot/amd64/Dockerfile b/src/sdk/11.0/azurelinux4.0-aot/amd64/Dockerfile new file mode 100644 index 0000000000..195154c523 --- /dev/null +++ b/src/sdk/11.0/azurelinux4.0-aot/amd64/Dockerfile @@ -0,0 +1,6 @@ +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:11.0.100-preview.5-azurelinux4.0-amd64 + +RUN dnf install -y \ + gcc \ + && dnf clean all diff --git a/src/sdk/11.0/azurelinux4.0-aot/arm64v8/Dockerfile b/src/sdk/11.0/azurelinux4.0-aot/arm64v8/Dockerfile new file mode 100644 index 0000000000..3cad90c154 --- /dev/null +++ b/src/sdk/11.0/azurelinux4.0-aot/arm64v8/Dockerfile @@ -0,0 +1,6 @@ +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:11.0.100-preview.5-azurelinux4.0-arm64v8 + +RUN dnf install -y \ + gcc \ + && dnf clean all diff --git a/src/sdk/11.0/azurelinux4.0/amd64/Dockerfile b/src/sdk/11.0/azurelinux4.0/amd64/Dockerfile new file mode 100644 index 0000000000..c8ebc298b1 --- /dev/null +++ b/src/sdk/11.0/azurelinux4.0/amd64/Dockerfile @@ -0,0 +1,67 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:11.0.0-preview.5-azurelinux4.0-amd64 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Install .NET SDK +RUN dotnet_sdk_version=11.0.100-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.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-preview.5.26302.115 \ + # 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-4.0 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN dnf install -y \ + git \ + libatomic \ + tar \ + && dnf 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.7.0-preview.2 \ + && 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='0bfdb2cb425e9dc45ce824746b9c686e0cfebe76e02918c3e09663cfb6d7c8a1fb9a8f983b61a30627ab5c48001e5e778ce30e977ce246bf6f48ac09f550bd6f' \ + && 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 \ + && chmod 755 /usr/share/powershell/.store/powershell.linux.x64/$powershell_version/powershell.linux.x64/$powershell_version/tools/*/any/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/azurelinux4.0/arm64v8/Dockerfile b/src/sdk/11.0/azurelinux4.0/arm64v8/Dockerfile new file mode 100644 index 0000000000..1c3b5724d3 --- /dev/null +++ b/src/sdk/11.0/azurelinux4.0/arm64v8/Dockerfile @@ -0,0 +1,67 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:11.0.0-preview.5-azurelinux4.0-arm64v8 AS installer + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Install .NET SDK +RUN dotnet_sdk_version=11.0.100-preview.5.26302.115 \ + && 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-preview.5-azurelinux4.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-preview.5.26302.115 \ + # 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-4.0-arm64 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN dnf install -y \ + git \ + libatomic \ + tar \ + && dnf 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.7.0-preview.2 \ + && 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='4ea0c5fac453a9c1b3c5800acda1319c9db2df4c6e2dfa40c08fbb169c32def3e4688c5b89473fcdb4b218091a1f3836749fd59d8ee94d39f2c96e8761c08c94' \ + && 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 \ + && chmod 755 /usr/share/powershell/.store/powershell.linux.arm64/$powershell_version/powershell.linux.arm64/$powershell_version/tools/*/any/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-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..8e21687977 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-amd64 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=$aspnetcore_version \ + && 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_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux4.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-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..0dc29531ed --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-arm64v8 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=$aspnetcore_version \ + && 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_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux4.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-10.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..44638251d9 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=$aspnetcore_version \ + && 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_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux4.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-10.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..825ddd4097 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=$aspnetcore_version \ + && 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_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux4.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-10.0-azurelinux4.0-distroless-composite-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-composite-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..56aa9bd6dd --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-composite-amd64-Dockerfile.approved.txt @@ -0,0 +1,44 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=$aspnetcore_version \ + && 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_build_version/aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_build_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-azurelinux4.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-10.0-azurelinux4.0-distroless-composite-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-composite-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..2b0528bcff --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-composite-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,44 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=$aspnetcore_version \ + && 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_build_version/aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_build_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-azurelinux4.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-10.0-azurelinux4.0-distroless-composite-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-composite-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..d57e8768fd --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-composite-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,44 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=$aspnetcore_version \ + && 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_build_version/aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_build_version-linux-x64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_build_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-azurelinux4.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-10.0-azurelinux4.0-distroless-composite-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-composite-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..c705281ba6 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-composite-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,44 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Composite Runtime +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=$aspnetcore_version \ + && 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_build_version/aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + aspnetcore-runtime-composite-$aspnetcore_build_version-linux-arm64.tar.gz \ + aspnetcore-runtime-composite-$aspnetcore_build_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-azurelinux4.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-10.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..3c95a516b8 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=$aspnetcore_version \ + && 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_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz \ + aspnetcore-runtime-$aspnetcore_build_version-linux-x64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux4.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-10.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..6c8217f98a --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-10.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve ASP.NET Core +RUN aspnetcore_version=0.0.0 \ + && aspnetcore_build_version=$aspnetcore_version \ + && 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_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/aspnetcore/Runtime/$aspnetcore_build_version/aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz.sha512) aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz --directory /dotnet ./shared/Microsoft.AspNetCore.App \ + && rm \ + aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz \ + aspnetcore-runtime-$aspnetcore_build_version-linux-arm64.tar.gz.sha512 + + +# ASP.NET Core image +FROM $REPO:0.0.0-azurelinux4.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-azurelinux4.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..369766f4fc --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-amd64 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..7d8611dd96 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,32 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-arm64v8 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..7261a49c91 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..3bb49ec741 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,33 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-composite-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-distroless-composite-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..4a7efd5d45 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.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-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-composite-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-distroless-composite-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..a93a5d29f1 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.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-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-composite-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-distroless-composite-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..611fbbe6a9 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.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-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-composite-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-distroless-composite-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..7a28916b6c --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.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-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..df13ffb4be --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.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-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..42f40b3c03 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/aspnet-11.0-azurelinux4.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-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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/runtime-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..8fc1944df2 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,35 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-amd64 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && dotnet_build_version=$dotnet_version \ + && 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_build_version/dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz.sha512) dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-azurelinux4.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-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..99571d8f08 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,35 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-arm64v8 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && dotnet_build_version=$dotnet_version \ + && 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_build_version/dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz --directory /dotnet \ + && rm \ + dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz.sha512 + + +# .NET runtime image +FROM $REPO:0.0.0-azurelinux4.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-10.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..7a454fcdb0 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && dotnet_build_version=$dotnet_version \ + && 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_build_version/dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz.sha512) dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_build_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-azurelinux4.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-10.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..038e660052 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && dotnet_build_version=$dotnet_version \ + && 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_build_version/dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_build_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-azurelinux4.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-10.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..acc464c52c --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && dotnet_build_version=$dotnet_version \ + && 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_build_version/dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz.sha512) dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_build_version-linux-x64.tar.gz \ + dotnet-runtime-$dotnet_build_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-azurelinux4.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-10.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..9a32ba9292 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-10.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,41 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf clean all + +# Retrieve .NET Runtime +RUN dotnet_version=0.0.0 \ + && dotnet_build_version=$dotnet_version \ + && 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_build_version/dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Runtime/$dotnet_build_version/dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz.sha512) dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /usr/share/dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz --directory /usr/share/dotnet \ + && rm \ + dotnet-runtime-$dotnet_build_version-linux-arm64.tar.gz \ + dotnet-runtime-$dotnet_build_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-azurelinux4.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-azurelinux4.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..7da74b1b6a --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-amd64 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..3727111a4b --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,34 @@ +ARG REPO=mcr.microsoft.com/dotnet/runtime-deps + +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-arm64v8 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..b32733f712 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.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-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..7b78937b1f --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.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-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..951f9fe545 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.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-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..8fa9d4d9e3 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-11.0-azurelinux4.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-beta/base/core:4.0 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + ca-certificates \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-deps-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..303a068fe7 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.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 dnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all + +# Create a non-root user and group +RUN dnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && dnf remove -y \ + shadow-utils \ + && dnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..303a068fe7 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.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 dnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all + +# Create a non-root user and group +RUN dnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && dnf remove -y \ + shadow-utils \ + && dnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..f275abacce --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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-10.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..f275abacce --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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-10.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..5ff1782f12 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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-10.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..5ff1782f12 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-10.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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-azurelinux4.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..303a068fe7 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.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 dnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all + +# Create a non-root user and group +RUN dnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && dnf remove -y \ + shadow-utils \ + && dnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..303a068fe7 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,36 @@ +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.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 dnf install -y \ + ca-certificates \ + \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all + +# Create a non-root user and group +RUN dnf install -y \ + shadow-utils \ + && groupadd \ + --gid=$APP_UID \ + app \ + && useradd --no-log-init \ + --uid=$APP_UID \ + --gid=$APP_UID \ + --create-home \ + app \ + && dnf remove -y \ + shadow-utils \ + && dnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..f275abacce --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-distroless-amd64-Dockerfile.approved.txt @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..f275abacce --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-distroless-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + libgcc \ + libstdc++ \ + openssl-libs \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..5ff1782f12 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-distroless-extra-amd64-Dockerfile.approved.txt @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..5ff1782f12 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/runtime-deps-11.0-azurelinux4.0-distroless-extra-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,66 @@ +# Installer image +FROM mcr.microsoft.com/azurelinux-beta/base/core:4.0 AS installer + +RUN dnf install -y \ + shadow-utils \ + && dnf clean all + +# Install .NET's dependencies into a staging location +RUN mkdir /staging \ + && dnf install -y --use-host-config --installroot /staging \ + # .NET dependencies + glibc \ + icu \ + libgcc \ + libstdc++ \ + openssl-libs \ + tzdata \ + && dnf clean all --use-host-config --installroot /staging + +# 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 \ + # Bash is a transient dependency of glibc. + # Remove it since this is a Distroless image. + rpm --erase --nodeps --root /staging bash \ + && rm -rf \ + /staging/etc/dnf \ + /staging/run/* \ + /staging/var/cache/dnf \ + /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-beta/distroless/minimal:4.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/sdk-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..9469084645 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-10.0-azurelinux4.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,70 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-amd64 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && dotnet_sdk_build_version=$dotnet_sdk_version \ + && 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_build_version/dotnet-sdk-$dotnet_sdk_build_version-linux-x64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/dotnet-sdk-$dotnet_sdk_build_version-linux-x64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_build_version-linux-x64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_build_version-linux-x64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_build_version-linux-x64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_build_version-linux-x64.tar.gz \ + dotnet-sdk-$dotnet_sdk_build_version-linux-x64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-azurelinux4.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-4.0 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN dnf install -y \ + git \ + libatomic \ + tar \ + && dnf 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 \ + && chmod 755 /usr/share/powershell/.store/powershell.linux.x64/$powershell_version/powershell.linux.x64/$powershell_version/tools/*/any/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-10.0-azurelinux4.0-aot-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-10.0-azurelinux4.0-aot-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..121a17fc36 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-10.0-azurelinux4.0-aot-amd64-Dockerfile.approved.txt @@ -0,0 +1,6 @@ +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-azurelinux4.0-amd64 + +RUN dnf install -y \ + gcc \ + && dnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-10.0-azurelinux4.0-aot-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-10.0-azurelinux4.0-aot-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..af58c85e72 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-10.0-azurelinux4.0-aot-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,6 @@ +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-azurelinux4.0-arm64v8 + +RUN dnf install -y \ + gcc \ + && dnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..84dab23313 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-10.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,70 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-arm64v8 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf clean all + +# Install .NET SDK +RUN dotnet_sdk_version=0.0.0 \ + && dotnet_sdk_build_version=$dotnet_sdk_version \ + && 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_build_version/dotnet-sdk-$dotnet_sdk_build_version-linux-arm64.tar.gz \ + --remote-name https://dotnetstage.blob.core.windows.net/Sdk/$dotnet_sdk_build_version/dotnet-sdk-$dotnet_sdk_build_version-linux-arm64.tar.gz.sha512 \ + && echo "$(cat dotnet-sdk-$dotnet_sdk_build_version-linux-arm64.tar.gz.sha512) dotnet-sdk-$dotnet_sdk_build_version-linux-arm64.tar.gz" | sha512sum -c - \ + && mkdir --parents /dotnet \ + && tar --gzip --extract --no-same-owner --file dotnet-sdk-$dotnet_sdk_build_version-linux-arm64.tar.gz --directory /dotnet ./dnx ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \ + && rm \ + dotnet-sdk-$dotnet_sdk_build_version-linux-arm64.tar.gz \ + dotnet-sdk-$dotnet_sdk_build_version-linux-arm64.tar.gz.sha512 + + +# .NET SDK image +FROM $REPO:0.0.0-azurelinux4.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-4.0-arm64 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN dnf install -y \ + git \ + libatomic \ + tar \ + && dnf 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 \ + && chmod 755 /usr/share/powershell/.store/powershell.linux.arm64/$powershell_version/powershell.linux.arm64/$powershell_version/tools/*/any/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-azurelinux4.0-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux4.0-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..4a286277fc --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux4.0-amd64-Dockerfile.approved.txt @@ -0,0 +1,69 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-amd64 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-4.0 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN dnf install -y \ + git \ + libatomic \ + tar \ + && dnf 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 \ + && chmod 755 /usr/share/powershell/.store/powershell.linux.x64/$powershell_version/powershell.linux.x64/$powershell_version/tools/*/any/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-azurelinux4.0-aot-amd64-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux4.0-aot-amd64-Dockerfile.approved.txt new file mode 100644 index 0000000000..121a17fc36 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux4.0-aot-amd64-Dockerfile.approved.txt @@ -0,0 +1,6 @@ +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-azurelinux4.0-amd64 + +RUN dnf install -y \ + gcc \ + && dnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux4.0-aot-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux4.0-aot-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..af58c85e72 --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux4.0-aot-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,6 @@ +ARG REPO=mcr.microsoft.com/dotnet/sdk +FROM $REPO:0.0.0-azurelinux4.0-arm64v8 + +RUN dnf install -y \ + gcc \ + && dnf clean all diff --git a/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt new file mode 100644 index 0000000000..185ea6402f --- /dev/null +++ b/tests/Microsoft.DotNet.Docker.Tests/Baselines/GeneratedArtifactTests/VerifyInternalDockerfilesOutput/sdk-11.0-azurelinux4.0-arm64v8-Dockerfile.approved.txt @@ -0,0 +1,69 @@ +ARG REPO=mcr.microsoft.com/dotnet/aspnet +# Installer image +FROM $REPO:0.0.0-azurelinux4.0-arm64v8 AS installer + +ARG ACCESSTOKEN + +RUN dnf install -y \ + gzip \ + tar \ + && dnf 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-azurelinux4.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-4.0-arm64 \ + # Workaround for https://github.com/PowerShell/PowerShell/issues/20685 + DOTNET_ROLL_FORWARD=Major + +RUN dnf install -y \ + git \ + libatomic \ + tar \ + && dnf 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 \ + && chmod 755 /usr/share/powershell/.store/powershell.linux.arm64/$powershell_version/powershell.linux.arm64/$powershell_version/tools/*/any/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/OS.cs b/tests/Microsoft.DotNet.Docker.Tests/OS.cs index 85f58e333b..276678ada3 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/OS.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/OS.cs @@ -21,6 +21,8 @@ internal static class OS // Azure Linux public static OSInfo AzureLinux30 { get; } = new(OSType.Linux, OSFamily.AzureLinux, "3.0"); public static OSInfo AzureLinux30Distroless { get; } = AzureLinux30 with { IsDistroless = true }; + public static OSInfo AzureLinux40 { get; } = new(OSType.Linux, OSFamily.AzureLinux, "4.0", IsUnstable: true); + public static OSInfo AzureLinux40Distroless { get; } = AzureLinux40 with { IsDistroless = true }; // Debian public static OSInfo BookwormSlim { get; } = new(OSType.Linux, OSFamily.Debian, "12"); diff --git a/tests/Microsoft.DotNet.Docker.Tests/ProductImageTests.cs b/tests/Microsoft.DotNet.Docker.Tests/ProductImageTests.cs index 44a6817725..d38ec7833d 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/ProductImageTests.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/ProductImageTests.cs @@ -124,6 +124,13 @@ protected void VerifyCommonDefaultUser(ProductImageData imageData) { expectedUser = "ContainerUser"; } + // Azure Linux 4.0 and newer base images default to USER root, unlike 3.0 + // which left the user unset. Our non-distroless images inherit this from + // the base image without resetting it. + else if (imageData.OS.Family == OSFamily.AzureLinux && imageData.OS.Version != "3.0") + { + expectedUser = "root"; + } else { expectedUser = string.Empty; @@ -181,6 +188,14 @@ internal void VerifyInstalledPackagesBase( DotNetImageRepo imageRepo, IEnumerable extraExcludePaths = null) { + if (imageData.OS.IsUnstable) + { + OutputHelper.WriteLine( + $"Skipping installed-packages verification for unstable OS '{imageData.OS.DisplayName}'." + + " The package set for pre-release distros is expected to change and is not asserted by tests."); + return; + } + IEnumerable expectedPackages = GetExpectedPackages(imageData, imageRepo); IEnumerable actualPackages = GetInstalledPackages(imageData, imageRepo, extraExcludePaths); diff --git a/tests/Microsoft.DotNet.Docker.Tests/TestData.cs b/tests/Microsoft.DotNet.Docker.Tests/TestData.cs index fb889652f8..16a8859b5f 100644 --- a/tests/Microsoft.DotNet.Docker.Tests/TestData.cs +++ b/tests/Microsoft.DotNet.Docker.Tests/TestData.cs @@ -183,16 +183,25 @@ public static class TestData new ProductImageData { Version = V10_0, OS = OS.Alpine323, Arch = Arch.Amd64, SdkOS = OS.Alpine323, ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, new ProductImageData { Version = V10_0, OS = OS.AzureLinux30, Arch = Arch.Amd64 }, + new ProductImageData { Version = V10_0, OS = OS.AzureLinux40, Arch = Arch.Amd64 }, new ProductImageData { Version = V10_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux30 }, + new ProductImageData { Version = V10_0, OS = OS.AzureLinux40Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux40 }, new ProductImageData { Version = V10_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux30, ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps | DotNetImageRepo.Runtime | DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V10_0, OS = OS.AzureLinux40Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux40, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps | DotNetImageRepo.Runtime | DotNetImageRepo.Aspnet }, new ProductImageData { Version = V10_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux30, ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V10_0, OS = OS.AzureLinux40Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux40, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, new ProductImageData { Version = V10_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux30, ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V10_0, OS = OS.AzureLinux40Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux40, + ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, new() { Version = V10_0, Arch = Arch.Amd64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.Alpine323 }, new() { Version = V10_0, Arch = Arch.Amd64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.AzureLinux30Distroless, SdkOS = OS.AzureLinux30 }, + new() { Version = V10_0, Arch = Arch.Amd64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.AzureLinux40Distroless, SdkOS = OS.AzureLinux40 }, new() { Version = V10_0, Arch = Arch.Amd64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.NobleChiseled, SdkOS = OS.Noble }, new ProductImageData { Version = V10_0, OS = OS.Resolute, Arch = Arch.Amd64 }, new ProductImageData { Version = V10_0, OS = OS.ResoluteChiseled, Arch = Arch.Amd64, SdkOS = OS.Resolute }, @@ -205,13 +214,21 @@ public static class TestData new() { Version = V10_0, Arch = Arch.Amd64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.ResoluteChiseled, SdkOS = OS.Resolute }, new ProductImageData { Version = V10_0, OS = OS.AzureLinux30, Arch = Arch.Arm64 }, + new ProductImageData { Version = V10_0, OS = OS.AzureLinux40, Arch = Arch.Arm64 }, new ProductImageData { Version = V10_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux30 }, + new ProductImageData { Version = V10_0, OS = OS.AzureLinux40Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux40 }, new ProductImageData { Version = V10_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux30, ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps | DotNetImageRepo.Runtime | DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V10_0, OS = OS.AzureLinux40Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux40, + ImageVariant = DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Runtime_Deps | DotNetImageRepo.Runtime | DotNetImageRepo.Aspnet }, new ProductImageData { Version = V10_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux30, ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V10_0, OS = OS.AzureLinux40Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux40, + ImageVariant = DotNetImageVariant.Composite, SupportedImageRepos = DotNetImageRepo.Aspnet }, new ProductImageData { Version = V10_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux30, ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, + new ProductImageData { Version = V10_0, OS = OS.AzureLinux40Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux40, + ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, new ProductImageData { Version = V10_0, OS = OS.Noble, Arch = Arch.Arm64 }, new ProductImageData { Version = V10_0, OS = OS.NobleChiseled, Arch = Arch.Arm64, SdkOS = OS.Noble }, new ProductImageData { Version = V10_0, OS = OS.NobleChiseled, Arch = Arch.Arm64, SdkOS = OS.Noble, @@ -230,6 +247,7 @@ public static class TestData new() { Version = V10_0, Arch = Arch.Arm64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.Alpine323 }, new() { Version = V10_0, Arch = Arch.Arm64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.AzureLinux30Distroless, SdkOS = OS.AzureLinux30 }, + new() { Version = V10_0, Arch = Arch.Arm64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.AzureLinux40Distroless, SdkOS = OS.AzureLinux40 }, new() { Version = V10_0, Arch = Arch.Arm64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.NobleChiseled, SdkOS = OS.Noble }, new ProductImageData { Version = V10_0, OS = OS.Resolute, Arch = Arch.Arm64 }, new ProductImageData { Version = V10_0, OS = OS.ResoluteChiseled, Arch = Arch.Arm64, SdkOS = OS.Resolute }, @@ -282,27 +300,44 @@ public static class TestData new ProductImageData { Version = V11_0, OS = OS.Alpine323, Arch = Arch.Amd64, SdkOS = OS.Alpine323, ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, new ProductImageData { Version = V11_0, OS = OS.AzureLinux30, Arch = Arch.Amd64 }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux40, Arch = Arch.Amd64 }, new ProductImageData { Version = V11_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux30 }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux40Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux40 }, 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.AzureLinux40Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux40, + 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.AzureLinux40Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux40, + 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 ProductImageData { Version = V11_0, OS = OS.AzureLinux40Distroless, Arch = Arch.Amd64, SdkOS = OS.AzureLinux40, + ImageVariant = DotNetImageVariant.Composite | DotNetImageVariant.Extra, SupportedImageRepos = DotNetImageRepo.Aspnet }, 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.AzureLinux40Distroless, SdkOS = OS.AzureLinux40 }, new() { Version = V11_0, Arch = Arch.Amd64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.ResoluteChiseled, SdkOS = OS.Resolute }, // .NET 11 Linux Arm64 new ProductImageData { Version = V11_0, OS = OS.AzureLinux30, Arch = Arch.Arm64 }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux40, Arch = Arch.Arm64 }, new ProductImageData { Version = V11_0, OS = OS.AzureLinux30Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux30 }, + new ProductImageData { Version = V11_0, OS = OS.AzureLinux40Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux40 }, 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.AzureLinux40Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux40, + 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.AzureLinux40Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux40, + 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.AzureLinux40Distroless, Arch = Arch.Arm64, SdkOS = OS.AzureLinux40, + 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, @@ -321,6 +356,7 @@ public static class TestData 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.AzureLinux40Distroless, SdkOS = OS.AzureLinux40 }, new() { Version = V11_0, Arch = Arch.Arm64, SdkImageVariant = DotNetImageVariant.AOT, SupportedImageRepos = DotNetImageRepo.Runtime_Deps, OS = OS.ResoluteChiseled, SdkOS = OS.Resolute }, // .NET 11 Linux Arm32