Skip to content

Commit

Permalink
Merge branch 'main' into 2024-08B
Browse files Browse the repository at this point in the history
  • Loading branch information
lbussell authored Aug 12, 2024
2 parents d48a712 + b0ed3ba commit 6208d01
Show file tree
Hide file tree
Showing 34 changed files with 170 additions and 154 deletions.
8 changes: 4 additions & 4 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"default": true,
"MD013": false, // line length
"MD024": { // no-duplicate-heading Multiple headings with the same content
"siblings_only": true
},
"MD033": false, // no inline HTML

// The following rules are disabled to allow the linter to be enabled.
// Follow-up work will be done to enable these rules and clean up the violations.
"MD001": false, // heading-increment Heading levels should only increment by one level at a time
"MD013": false, // line length
"MD022": false, // blanks-around-headings Headings should be surrounded by blank lines
"MD024": false, // no-duplicate-heading Multiple headings with the same content
"MD025": false, // single-title/single-h1 Multiple top-level headings in the same document
"MD028": false, // no-blanks-blockquote Blank line inside blockquote
"MD034": false, // no-bare-urls Bare URL used
"MD036": false, // no-emphasis-as-heading Emphasis used instead of a heading
"MD041": false, // first-line-heading/first-line-h1 First line in a file should be a top-level heading
}
2 changes: 0 additions & 2 deletions README.aspnet.md
Original file line number Diff line number Diff line change
Expand Up @@ -251,8 +251,6 @@ Tag | Dockerfile
You can retrieve a list of all available tags for dotnet/aspnet at https://mcr.microsoft.com/v2/dotnet/aspnet/tags/list.
<!--End of generated tags-->

For tags contained in the old dotnet/core/aspnet repository, you can retrieve a list of those tags at https://mcr.microsoft.com/v2/dotnet/core/aspnet/tags/list.

*Tags not listed in the table above are not supported. See the [Supported Tags Policy](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-tags.md)*

# Support
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ You can use C# or F# to write .NET apps.

You are invited to [contribute new features](https://github.com/dotnet/core/blob/master/CONTRIBUTING.md), fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.

> https://docs.microsoft.com/dotnet/core/
> [.NET Documentation](https://docs.microsoft.com/dotnet/core/)
Watch [discussions](https://github.com/dotnet/dotnet-docker/discussions/categories/announcements) for Docker-related .NET announcements.

Expand Down
2 changes: 0 additions & 2 deletions README.runtime-deps.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,8 +164,6 @@ Tags | Dockerfile | OS Version
You can retrieve a list of all available tags for dotnet/runtime-deps at https://mcr.microsoft.com/v2/dotnet/runtime-deps/tags/list.
<!--End of generated tags-->

For tags contained in the old dotnet/core/runtime-deps repository, you can retrieve a list of those tags at https://mcr.microsoft.com/v2/dotnet/core/runtime-deps/tags/list.

*Tags not listed in the table above are not supported. See the [Supported Tags Policy](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-tags.md)*

# Support
Expand Down
2 changes: 0 additions & 2 deletions README.runtime.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,6 @@ Tag | Dockerfile
You can retrieve a list of all available tags for dotnet/runtime at https://mcr.microsoft.com/v2/dotnet/runtime/tags/list.
<!--End of generated tags-->

For tags contained in the old dotnet/core/runtime repository, you can retrieve a list of those tags at https://mcr.microsoft.com/v2/dotnet/core/runtime/tags/list.

*Tags not listed in the table above are not supported. See the [Supported Tags Policy](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-tags.md)*

# Support
Expand Down
2 changes: 0 additions & 2 deletions README.samples.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,6 @@ aspnetapp-8.0-nanoserver-1809, aspnetapp-nanoserver-1809, aspnetapp-8.0, aspneta
You can retrieve a list of all available tags for dotnet/samples at https://mcr.microsoft.com/v2/dotnet/samples/tags/list.
<!--End of generated tags-->

For tags contained in the old dotnet/core/samples repository, you can retrieve a list of those tags at https://mcr.microsoft.com/v2/dotnet/core/samples/tags/list.

*Tags not listed in the table above are not supported. See the [Supported Tags Policy](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-tags.md)*

# Support
Expand Down
2 changes: 0 additions & 2 deletions README.sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,6 @@ Tag | Dockerfile
You can retrieve a list of all available tags for dotnet/sdk at https://mcr.microsoft.com/v2/dotnet/sdk/tags/list.
<!--End of generated tags-->

For tags contained in the old dotnet/core/sdk repository, you can retrieve a list of those tags at https://mcr.microsoft.com/v2/dotnet/core/sdk/tags/list.

*Tags not listed in the table above are not supported. See the [Supported Tags Policy](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-tags.md)*

# Support
Expand Down
4 changes: 2 additions & 2 deletions documentation/azurelinux.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ flowchart TD

Here's an example configuration based off of a simple ASP.NET Core app:

**.csproj**
### *.csproj

```diff
<PropertyGroup>
Expand All @@ -162,7 +162,7 @@ Here's an example configuration based off of a simple ASP.NET Core app:
</PropertyGroup>
```

**Dockerfile**
### Dockerfile

```diff
# Learn about building .NET container images:
Expand Down
5 changes: 3 additions & 2 deletions documentation/image-artifact-details.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,9 @@ FROM mcr.microsoft.com/cbl-mariner/base/core:2.0
COPY --from=distroless / /distroless
```

Note the last instruction copies the entire contents of the distroless container's filesystem to the `/distroless` directory in the wrapper.
This will be the target location used when executing commands.
> [!NOTE]
> The last instruction copies the entire contents of the distroless container's filesystem to the `/distroless` directory in the wrapper.
> This will be the target location used when executing commands.
Next, build the Dockerfile, specifying the distroless image tag you wish to inspect:

Expand Down
8 changes: 4 additions & 4 deletions documentation/image-variants.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,23 @@ By default, these images do not include `icu` or `tzdata`, meaning that these im
Apps that require globalization support can use the `extra` image variant of the [dotnet/runtime-deps](https://hub.docker.com/_/microsoft-dotnet-runtime-deps/) images. Because this is only available with `runtime-deps` images, it requires a [self-contained deployment](https://learn.microsoft.com/dotnet/core/deploying/#publish-self-contained) of the application.
Alpine, Azure Linux, and Ubuntu Chiseled images also come in `extra`, `composite`, and `aot` variants (see below).

### Distroless
## Distroless

[Ubuntu Chiseled](https://ubuntu.com/engage/chiselled-ubuntu-images-for-containers) and [Azure Linux](./azurelinux.md) distroless .NET images contain only the minimum set of libraries necessary to run .NET applications with everything else removed.
For more information, see the [Distroless .NET images documentation](./distroless.md).

### `extra` (.NET 8.0+)
## `extra` (.NET 8.0+)

For apps that depend on globalization functionality, the `extra` image variant is offered for [Ubuntu Chiseled](./ubuntu-chiseled.md) and [Azure Linux](./azurelinux.md) distroless `runtime-deps`, `runtime`, and `aspnet` images as well as `runtime-deps` images for Alpine Linux.
These `extra` images contain everything that the default images do, plus `icu` and `tzdata`.

### `composite` (.NET 8.0+)
## `composite` (.NET 8.0+)

ASP.NET Core Composite images provide a smaller size on disk while keeping the performance of the default [ReadyToRun (R2R) setting](https://learn.microsoft.com/dotnet/core/deploying/ready-to-run).
The caveat is that the composite images have tighter version coupling. This means the final app run on them cannot use handpicked custom versions of the framework and/or ASP.NET assemblies that are built into the composite binary.
For a full technical description on how the composites work, we have a [feature doc here](https://github.com/dotnet/runtime/blob/main/docs/design/features/readytorun-composite-format-design.md).

### (Preview) `aot` (.NET 8.0+)
## (Preview) `aot` (.NET 8.0+)

The `aot` images provide an optimized deployment size for [Native AOT](https://learn.microsoft.com/dotnet/core/deploying/native-aot/) compiled .NET apps.
Native AOT has the lowest size, startup time, and memory footprint of all .NET deployment models.
Expand Down
7 changes: 4 additions & 3 deletions documentation/scenarios/nuget-credentials.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ The `VSS_NUGET_EXTERNAL_FEED_ENDPOINTS` environment variable is a well-known var

Instead, the credentials for `customfeed` are defined in the Dockerfile by making use of an `ARG` for the access token:

_Linux_
### Linux

```Dockerfile
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
Expand All @@ -170,7 +170,7 @@ COPY --from=build /app/out ./
ENTRYPOINT ["dotnet", "dotnetapp.dll"]
```

_Windows_
### Windows

```Dockerfile
# escape=`
Expand Down Expand Up @@ -207,7 +207,8 @@ COPY --from=build /app/out ./
ENTRYPOINT ["dotnet", "dotnetapp.dll"]
```

_Note that a script is called to install the Credential Provider. When `dotnet restore` is run, the Credential Provider is invoked to resolve the credentials and it retrieves them from the `VSS_NUGET_EXTERNAL_FEED_ENDPOINTS` environment variable._
> [!NOTE]
> A script is called to install the Credential Provider. When `dotnet restore` is run, the Credential Provider is invoked to resolve the credentials and it retrieves them from the `VSS_NUGET_EXTERNAL_FEED_ENDPOINTS` environment variable.
Before running `docker build`, first populate the `FEED_ACCESSTOKEN` environment variable with a [personal access token](https://docs.microsoft.com/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate). Then, this Dockerfile would be built using this command:

Expand Down
56 changes: 29 additions & 27 deletions documentation/supported-tags.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@ They include:
- Debian, unless specified (like `8.0-alpine`).
- All [supported architectures](supported-platforms.md#architectures).

> Note: Since .NET 8, these multi-platform tags **specifically exclude all Windows versions** due to `containerd`'s platform matching algorithm for Windows hosts.
> [!NOTE]
> Since .NET 8, these multi-platform tags **specifically exclude all Windows versions** due to `containerd`'s platform matching algorithm for Windows hosts.
Please see [#4492 (Switch multi-platform tags to Linux only)](https://github.com/dotnet/dotnet-docker/issues/4492) for more context.
If you are using Windows, you will need to explicitly specify an OS Version with a single-platform tag like so:

Expand Down Expand Up @@ -90,11 +92,11 @@ Examples:
- `6.0-alpine`
- `8.0-alpine`

Notes:

- New versions of Alpine will be published with version-specific tags (e.g. `6.0-alpine3.20`).
- Floating tag (e.g. `6.0-alpine`) will be updated with the new Alpine version a month later.
- Tag changes will be [announced](https://github.com/dotnet/dotnet-docker/discussions/categories/announcements) so that users know when the tags they want are available.
> [!NOTE]
>
> - New versions of Alpine will be published with version-specific tags (e.g. `6.0-alpine3.20`).
> - Floating tag (e.g. `6.0-alpine`) will be updated with the new Alpine version a month later.
> - Tag changes will be [announced](https://github.com/dotnet/dotnet-docker/discussions/categories/announcements) so that users know when the tags they want are available.
### `<Major.Minor.Patch .NET Version>`

Expand Down Expand Up @@ -131,10 +133,10 @@ For more information, see the [Image Variants documentation](./image-variants.md

These "floating version" `latest` tag references an image with the latest `Major.Minor.Patch` .NET version, while operating system and architecture will be chosen based on the requesting environment.

Notes:

- The `latest` tag references the latest stable release.
- In the `nightly` image repo, it may reference the latest preview release.
> [!NOTE]
>
> - The `latest` tag references the latest stable release.
> - In the `nightly` image repo, it may reference the latest preview release.
## Tag policies

Expand All @@ -149,12 +151,12 @@ Examples:
- `6.0.32`
- `8.0.7-alpine3.20`

Notes:

- These tags are considered _fixed tags_ since they reference a specific .NET patch version.
- They are updated in response to base image updates (like a Debian base image) for the supported life of the image (typically one month).
- The .NET components within the image will not be updated.
- In the rare event that .NET components are updated before the next regular .NET service release, then a new image with a `-1` tag will be created. The same practice will repeat itself if necessary (with `-2` and then `-3` tags).
> [!NOTE]
>
> - These tags are considered _fixed tags_ since they reference a specific .NET patch version.
> - They are updated in response to base image updates (like a Debian base image) for the supported life of the image (typically one month).
> - The .NET components within the image will not be updated.
> - In the rare event that .NET components are updated before the next regular .NET service release, then a new image with a `-1` tag will be created. The same practice will repeat itself if necessary (with `-2` and then `-3` tags).
### Floating version tags

Expand All @@ -165,11 +167,11 @@ Examples:
- `6.0`
- `8.0-alpine3.20`

Notes:

- These tags are considered _floating tags_ since they do not reference a specific .NET patch version.
- They are updated in response to base image updates (like a Debian base image) for the supported life of the .NET release.
- The .NET components within the image will be updated, which typically occurs on Patch Tuesday.
> [!NOTE]
>
> - These tags are considered _floating tags_ since they do not reference a specific .NET patch version.
> - They are updated in response to base image updates (like a Debian base image) for the supported life of the .NET release.
> - The .NET components within the image will be updated, which typically occurs on Patch Tuesday.
### OS tags and base image updates

Expand All @@ -180,12 +182,12 @@ Examples:
- `6.0-jammy`
- `8.0-alpine3.20`

Notes:

- These tags are updated in response to base image updates (like an Ubuntu base image) for the supported life of the .NET release.
- Digest pinning is required to request a specific patch of an operating system (e.g. `mcr.microsoft.com/dotnet/runtime@sha256:4d3d5a5131a0621509ab8a75f52955f2d0150972b5c5fb918e2e59d4cb9a9823`).
- If an image is only available for one operating system, then the operating system will be omitted from the tag.
- For [Debian](https://en.wikipedia.org/wiki/Debian_version_history) and [Ubuntu](https://en.wikipedia.org/wiki/Ubuntu_version_history) images, release codenames are used instead of version numbers.
> [!NOTE]
>
> - These tags are updated in response to base image updates (like an Ubuntu base image) for the supported life of the .NET release.
> - Digest pinning is required to request a specific patch of an operating system (e.g. `mcr.microsoft.com/dotnet/runtime@sha256:4d3d5a5131a0621509ab8a75f52955f2d0150972b5c5fb918e2e59d4cb9a9823`).
> - If an image is only available for one operating system, then the operating system will be omitted from the tag.
> - For [Debian](https://en.wikipedia.org/wiki/Debian_version_history) and [Ubuntu](https://en.wikipedia.org/wiki/Ubuntu_version_history) images, release codenames are used instead of version numbers.
### Windows tags

Expand Down
6 changes: 4 additions & 2 deletions documentation/vulnerability-reporting.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ $myImage="<insert-my-image-tag>"
&([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/dotnet/dotnet-docker/main/documentation/scripts/resolve-image-digest.ps1'))) $myImage
```

#### Resolving multi-arch tags

If the script above returns an error indicating it's unable to resolve a multi-arch tag, you'll need to provide extra parameters to the script.
The following scripts indicate how to do that.

Expand All @@ -81,7 +83,7 @@ You only need the first three parts of the version number.
In the case of Windows Server 2022, it's `10.0.20348`.
You can use a wildcard to indicate the rest of the version number.

#### macOS/Linux
##### macOS/Linux

Requires [PowerShell to be installed](https://learn.microsoft.com/powershell/scripting/install/installing-powershell-on-linux).

Expand All @@ -93,7 +95,7 @@ osVersion="<windows-version>" # Only used for Windows containers (e.g. "10.0.203
curl -sSL https://raw.githubusercontent.com/dotnet/dotnet-docker/main/documentation/scripts/resolve-image-digest.ps1 | pwsh /dev/stdin $myImage -Os $os -Architecture $arch -OsVersion $osVersion
```

#### Windows
##### Windows

```powershell
$myImage="<insert-my-image-tag>"
Expand Down
2 changes: 2 additions & 0 deletions eng/pipelines/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# .NET Docker Pipelines

The contents of the `pipelines` folder are used by the .NET Core engineering infrastructure to build and publish the images.
2 changes: 1 addition & 1 deletion eng/readme-templates/About.product-family.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ You can use C# or F# to write .NET apps.

You are invited to [contribute new features](https://github.com/dotnet/core/blob/master/CONTRIBUTING.md), fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.

> https://docs.microsoft.com/dotnet/core/
> [.NET Documentation](https://docs.microsoft.com/dotnet/core/)
4 changes: 1 addition & 3 deletions eng/readme-templates/DefaultLayout.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,7 @@ if !IS_PRODUCT_FAMILY:{{InsertTemplate("FeaturedTags.md", commonArgs)}}
{{if !IS_PRODUCT_FAMILY:
# Full Tag Listing
{{if ARGS["readme-host"] = "github":<!--End of generated tags-->
{{if !(isMonitor || isAspireDashboard):For tags contained in the old dotnet/core{{if isNightlyRepo:-nightly}}/{{SHORT_REPO}} repository, you can retrieve a list of those tags at https://mcr.microsoft.com/v2/dotnet/core{{if isNightlyRepo:-nightly}}/{{SHORT_REPO}}/tags/list.

}}*Tags not listed in the table above are not supported. See the [Supported Tags Policy](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-tags.md)*
*Tags not listed in the table above are not supported. See the [Supported Tags Policy](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-tags.md)*
^elif ARGS["readme-host"] = "dockerhub":
View the current tags at the [Microsoft Artifact Registry portal](https://mcr.microsoft.com/product/{{REPO}}/tags) or on [GitHub](https://github.com/dotnet/dotnet-docker/blob/{{if isNightlyRepo:nightly^else:main}}/README.{{SHORT_REPO}}.md#full-tag-listing).
}}}}
Expand Down
Loading

0 comments on commit 6208d01

Please sign in to comment.