Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions README.sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,13 @@ Tags | Dockerfile | OS Version
Tags | Dockerfile | OS Version
-----------| -------------| -------------
10.0.100-preview.2-noble-amd64, 10.0-preview-noble-amd64, 10.0.100-preview.2-noble, 10.0-preview-noble, 10.0.100-preview.2, 10.0-preview, latest | [Dockerfile](src/sdk/10.0/noble/amd64/Dockerfile) | Ubuntu 24.04
10.0.100-preview.2-noble-aot-amd64, 10.0-preview-noble-aot-amd64, 10.0.100-preview.2-noble-aot, 10.0-preview-noble-aot, 10.0.100-preview.2-aot, 10.0-preview-aot | [Dockerfile](src/sdk/10.0/noble-aot/amd64/Dockerfile) | Ubuntu 24.04
10.0.100-preview.2-alpine3.21-amd64, 10.0-preview-alpine3.21-amd64, 10.0-preview-alpine-amd64, 10.0.100-preview.2-alpine3.21, 10.0-preview-alpine3.21, 10.0-preview-alpine | [Dockerfile](src/sdk/10.0/alpine3.21/amd64/Dockerfile) | Alpine 3.21
10.0.100-preview.2-alpine3.21-aot-amd64, 10.0-preview-alpine3.21-aot-amd64, 10.0-preview-alpine-aot-amd64, 10.0.100-preview.2-alpine3.21-aot, 10.0-preview-alpine3.21-aot, 10.0-preview-alpine-aot | [Dockerfile](src/sdk/10.0/alpine3.21-aot/amd64/Dockerfile) | Alpine 3.21
10.0.100-preview.2-azurelinux3.0-amd64, 10.0-preview-azurelinux3.0-amd64, 10.0.100-preview.2-azurelinux3.0, 10.0-preview-azurelinux3.0 | [Dockerfile](src/sdk/10.0/azurelinux3.0/amd64/Dockerfile) | Azure Linux 3.0
10.0.100-preview.2-azurelinux3.0-aot-amd64, 10.0-preview-azurelinux3.0-aot-amd64, 10.0.100-preview.2-azurelinux3.0-aot, 10.0-preview-azurelinux3.0-aot | [Dockerfile](src/sdk/10.0/azurelinux3.0-aot/amd64/Dockerfile) | Azure Linux 3.0
10.0.100-preview.2-trixie-slim-amd64, 10.0-preview-trixie-slim-amd64, 10.0.100-preview.2-trixie-slim, 10.0-preview-trixie-slim | [Dockerfile](src/sdk/10.0/trixie-slim/amd64/Dockerfile) | Debian 13
10.0.100-preview.2-trixie-slim-aot-amd64, 10.0-preview-trixie-slim-aot-amd64, 10.0.100-preview.2-trixie-slim-aot, 10.0-preview-trixie-slim-aot | [Dockerfile](src/sdk/10.0/trixie-slim-aot/amd64/Dockerfile) | Debian 13

### Linux arm64 Tags

Expand Down Expand Up @@ -136,9 +140,13 @@ Tags | Dockerfile | OS Version
Tags | Dockerfile | OS Version
-----------| -------------| -------------
10.0.100-preview.2-noble-arm64v8, 10.0-preview-noble-arm64v8, 10.0.100-preview.2-noble, 10.0-preview-noble, 10.0.100-preview.2, 10.0-preview, latest | [Dockerfile](src/sdk/10.0/noble/arm64v8/Dockerfile) | Ubuntu 24.04
10.0.100-preview.2-noble-aot-arm64v8, 10.0-preview-noble-aot-arm64v8, 10.0.100-preview.2-noble-aot, 10.0-preview-noble-aot, 10.0.100-preview.2-aot, 10.0-preview-aot | [Dockerfile](src/sdk/10.0/noble-aot/arm64v8/Dockerfile) | Ubuntu 24.04
10.0.100-preview.2-alpine3.21-arm64v8, 10.0-preview-alpine3.21-arm64v8, 10.0-preview-alpine-arm64v8, 10.0.100-preview.2-alpine3.21, 10.0-preview-alpine3.21, 10.0-preview-alpine | [Dockerfile](src/sdk/10.0/alpine3.21/arm64v8/Dockerfile) | Alpine 3.21
10.0.100-preview.2-alpine3.21-aot-arm64v8, 10.0-preview-alpine3.21-aot-arm64v8, 10.0-preview-alpine-aot-arm64v8, 10.0.100-preview.2-alpine3.21-aot, 10.0-preview-alpine3.21-aot, 10.0-preview-alpine-aot | [Dockerfile](src/sdk/10.0/alpine3.21-aot/arm64v8/Dockerfile) | Alpine 3.21
10.0.100-preview.2-azurelinux3.0-arm64v8, 10.0-preview-azurelinux3.0-arm64v8, 10.0.100-preview.2-azurelinux3.0, 10.0-preview-azurelinux3.0 | [Dockerfile](src/sdk/10.0/azurelinux3.0/arm64v8/Dockerfile) | Azure Linux 3.0
10.0.100-preview.2-azurelinux3.0-aot-arm64v8, 10.0-preview-azurelinux3.0-aot-arm64v8, 10.0.100-preview.2-azurelinux3.0-aot, 10.0-preview-azurelinux3.0-aot | [Dockerfile](src/sdk/10.0/azurelinux3.0-aot/arm64v8/Dockerfile) | Azure Linux 3.0
10.0.100-preview.2-trixie-slim-arm64v8, 10.0-preview-trixie-slim-arm64v8, 10.0.100-preview.2-trixie-slim, 10.0-preview-trixie-slim | [Dockerfile](src/sdk/10.0/trixie-slim/arm64v8/Dockerfile) | Debian 13
10.0.100-preview.2-trixie-slim-aot-arm64v8, 10.0-preview-trixie-slim-aot-arm64v8, 10.0.100-preview.2-trixie-slim-aot, 10.0-preview-trixie-slim-aot | [Dockerfile](src/sdk/10.0/trixie-slim-aot/arm64v8/Dockerfile) | Debian 13

### Linux arm32 Tags

Expand Down
54 changes: 13 additions & 41 deletions eng/dockerfile-templates/sdk/Dockerfile.linux.aot
Original file line number Diff line number Diff line change
Expand Up @@ -7,55 +7,27 @@
set isUbuntu to find(OS_ARCH_HYPHENATED, "Ubuntu") >= 0 ^
set ubuntuVersion to when(find(OS_VERSION, "jammy") >= 0, "jammy", "noble") ^

set isMultiArch to isUbuntu ^
set buildArchShortName to when(ARCH_SHORT = "arm64", ARCH_SHORT, "amd64") ^
set buildArchLongName to when(ARCH_SHORT = "arm64", "aarch64", "x86-64") ^
set targetArchLongName to when(ARCH_SHORT = "arm64", "x86-64", "aarch64") ^
set targetArchShortName to when(ARCH_SHORT = "arm64", "amd64", "arm64") ^

set pkgs to cat(sort(when(isAlpine,
set pkgs to cat(sort(
when(isAlpine,
[
"build-base",
"clang",
"zlib-dev"
],
when(isAzureLinux,
[
"build-essential",
"clang",
"zlib-devel"
],
[
"clang",
cat("gcc-", targetArchLongName, "-linux-gnu"),
cat("zlib1g-dev:", targetArchShortName),
"zlib1g-dev",
"llvm"
])))) ^

set sourcesListFilePath to when(OS_VERSION = "jammy",
cat("/etc/apt/sources.list.d/", targetArchShortName, ".list"),
cat("/etc/apt/sources.list.d/", targetArchShortName, ".sources")) ^

set ubuntuPortsUrl to when(ARCH_SHORT = "arm64",
"http://archive.ubuntu.com/ubuntu/",
"http://ports.ubuntu.com/ubuntu-ports/")
[
"build-essential",
"clang",
"zlib-devel"
],
[
"clang",
"zlib1g-dev",
"llvm"
]))))

}}# syntax=docker/dockerfile:1
ARG REPO=mcr.microsoft.com/dotnet/sdk
FROM {{baseImageTag}}

{{if isMultiArch:{{if match(OS_VERSION, "jammy"):RUN echo "deb [arch={{targetArchShortName}}] {{ubuntuPortsUrl}} {{OS_VERSION}} main restricted" > {{sourcesListFilePath}} \
&& echo "deb [arch={{targetArchShortName}}] {{ubuntuPortsUrl}} {{OS_VERSION}}-updates main restricted" >> {{sourcesListFilePath}} \
&& sed -i -e 's/deb http/deb [arch={{buildArchShortName}}] http/g' /etc/apt/sources.list \^else:COPY <<EOF {{sourcesListFilePath}}
Types: deb
URIs: {{ubuntuPortsUrl}}
Suites: {{OS_VERSION}} {{OS_VERSION}}-updates
Components: main restricted
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Architectures: {{targetArchShortName}}
EOF

RUN sed -i '/Signed-By/ a Architectures: {{buildArchShortName}}' /etc/apt/sources.list.d/ubuntu.sources \}}
&& dpkg --add-architecture {{targetArchShortName}} \
&& {{InsertTemplate("../Dockerfile.linux.install-pkgs", [ "pkgs": pkgs ])}}^else:RUN {{InsertTemplate("../Dockerfile.linux.install-pkgs", [ "pkgs": pkgs ])}}}}
RUN {{InsertTemplate("../Dockerfile.linux.install-pkgs", [ "pkgs": pkgs ])}}
46 changes: 46 additions & 0 deletions eng/dockerfile-templates/sdk/Dockerfile.linux.aot-cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{{
set dotnetVersion to join(slice(split(PRODUCT_VERSION, "."), 0, 2), ".") ^
set baseImageTag to cat("$REPO:", VARIABLES[cat("sdk|", dotnetVersion, "|fixed-tag")], "-", OS_VERSION, ARCH_TAG_SUFFIX) ^

set ubuntuVersion to when(find(OS_VERSION, "jammy") >= 0, "jammy", "noble") ^

set isMultiArch to isUbuntu ^
set buildArchShortName to when(ARCH_SHORT = "arm64", ARCH_SHORT, "amd64") ^
set buildArchLongName to when(ARCH_SHORT = "arm64", "aarch64", "x86-64") ^
set targetArchLongName to when(ARCH_SHORT = "arm64", "x86-64", "aarch64") ^
set targetArchShortName to when(ARCH_SHORT = "arm64", "amd64", "arm64") ^

set pkgs to cat(sort([
"clang",
cat("gcc-", targetArchLongName, "-linux-gnu"),
cat("zlib1g-dev:", targetArchShortName),
"zlib1g-dev",
"llvm"
])) ^

set sourcesListFilePath to when(OS_VERSION = "jammy",
cat("/etc/apt/sources.list.d/", targetArchShortName, ".list"),
cat("/etc/apt/sources.list.d/", targetArchShortName, ".sources")) ^

set ubuntuPortsUrl to when(ARCH_SHORT = "arm64",
"http://archive.ubuntu.com/ubuntu/",
"http://ports.ubuntu.com/ubuntu-ports/")

}}# syntax=docker/dockerfile:1
ARG REPO=mcr.microsoft.com/dotnet/sdk
FROM {{baseImageTag}}

{{if match(OS_VERSION, "jammy"):RUN echo "deb [arch={{targetArchShortName}}] {{ubuntuPortsUrl}} {{OS_VERSION}} main restricted" > {{sourcesListFilePath}} \
&& echo "deb [arch={{targetArchShortName}}] {{ubuntuPortsUrl}} {{OS_VERSION}}-updates main restricted" >> {{sourcesListFilePath}} \
&& sed -i -e 's/deb http/deb [arch={{buildArchShortName}}] http/g' /etc/apt/sources.list \^else:COPY <<EOF {{sourcesListFilePath}}
Types: deb
URIs: {{ubuntuPortsUrl}}
Suites: {{OS_VERSION}} {{OS_VERSION}}-updates
Components: main restricted
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Architectures: {{targetArchShortName}}
EOF

RUN sed -i '/Signed-By/ a Architectures: {{buildArchShortName}}' /etc/apt/sources.list.d/ubuntu.sources \}}
&& dpkg --add-architecture {{targetArchShortName}} \
&& {{InsertTemplate("../Dockerfile.linux.install-pkgs", [ "pkgs": pkgs ])}}
4 changes: 4 additions & 0 deletions eng/mcr-tags-metadata-templates/sdk-tags.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
$(McrTagsYmlRepo:sdk)
$(McrTagsYmlTagGroup:10.0-preview-noble|.NET 10 Preview Tags)
$(McrTagsYmlTagGroup:10.0-preview-noble-aot|.NET 10 Preview Tags)
$(McrTagsYmlTagGroup:10.0-preview-alpine3.21|.NET 10 Preview Tags)
$(McrTagsYmlTagGroup:10.0-preview-alpine3.21-aot|.NET 10 Preview Tags)
$(McrTagsYmlTagGroup:10.0-preview-azurelinux3.0|.NET 10 Preview Tags)
$(McrTagsYmlTagGroup:10.0-preview-azurelinux3.0-aot|.NET 10 Preview Tags)
$(McrTagsYmlTagGroup:10.0-preview-trixie-slim|.NET 10 Preview Tags)
$(McrTagsYmlTagGroup:10.0-preview-trixie-slim-aot|.NET 10 Preview Tags)
$(McrTagsYmlTagGroup:9.0-bookworm-slim)
$(McrTagsYmlTagGroup:9.0-alpine3.21)
$(McrTagsYmlTagGroup:9.0-alpine3.21-aot)
Expand Down
Loading
Loading