Skip to content
Merged
Show file tree
Hide file tree
Changes from 42 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
3c97828
Update dotnetapp sample to .NET 8
richlander Jul 11, 2023
a0a73f8
Update ASP.NET sample
richlander Jul 11, 2023
71e0059
Update
richlander Jul 12, 2023
fdd1d3b
Update Windows samples
richlander Jul 12, 2023
b8913bf
Switch aspnetapp to chiseled
richlander Jul 12, 2023
6b713fc
Add apiapp
richlander Jul 12, 2023
3c97503
Add AOT and single file samples
richlander Jul 14, 2023
bfd5ac7
Update manifest.samples.json
richlander Jul 14, 2023
f855ea1
Update manifest
richlander Jul 14, 2023
0f5c025
Add cross-target sample
richlander Jul 16, 2023
6104c2e
Update cross-target Dockerfile
richlander Jul 16, 2023
764f30d
Change image reference
richlander Jul 16, 2023
b538842
Add build-essential package
richlander Jul 16, 2023
23cb595
Add more SF variants
richlander Jul 17, 2023
55faf5c
Update README
richlander Jul 17, 2023
37ffee7
Update READMEs
richlander Jul 17, 2023
e7e9ee6
Enable buildkit on agent
lbussell Jul 19, 2023
445fe0f
Merge branch 'main' into dotnet-8-samples
lbussell Jul 19, 2023
609f130
Escape powershell variable definition in bash
lbussell Jul 19, 2023
77b8e0e
Apply suggestions from code review
richlander Jul 19, 2023
b526676
Update per feedback
richlander Jul 20, 2023
f83c4dc
Add cross-target Dockerfiles
richlander Jul 24, 2023
2a04031
Update README
richlander Jul 24, 2023
21956e2
Fix markdown
richlander Jul 24, 2023
14bc38d
Update README.md
richlander Jul 24, 2023
7c56874
Fix Ubuntu feeds
richlander Jul 24, 2023
669c1b6
Add cbl-mariner Dockerfile
richlander Jul 27, 2023
cf0e567
Add Mariner to README
richlander Jul 27, 2023
0a46215
Remove compiler reference
richlander Jul 28, 2023
ff62974
Switch to chiseled
richlander Jul 29, 2023
e43e109
Add instructions for SDK container builds
richlander Jul 29, 2023
90e420d
Add announcements
richlander Jul 29, 2023
e4c4088
Add announcements
richlander Jul 29, 2023
c12ce07
Remove announcements
richlander Jul 29, 2023
09e21de
Update to alpine 3.18 based ImageBuilder
lbussell Aug 1, 2023
52e53b2
Merge remote-tracking branch 'upstream/main' into dotnet-8-samples
lbussell Aug 1, 2023
adbbfe8
Remove ContainerUser from IIS sample
richlander Aug 4, 2023
58ee815
Update sample data
richlander Aug 4, 2023
b759c59
Update default port
lbussell Aug 31, 2023
2625383
Update port env var
lbussell Aug 31, 2023
15d0338
Use port 80 for ServiceMonitor.exe
lbussell Sep 1, 2023
d89c393
Merge branch 'main' into dotnet-8-samples
mthalman Sep 8, 2023
6f59d02
Update to new images
richlander Sep 11, 2023
d1c0835
Update samples/dotnetapp/README.md
richlander Sep 12, 2023
4c058c1
Update samples
richlander Sep 12, 2023
b4538af
Merge branch 'main' into dotnet-8-samples
richlander Sep 12, 2023
e891465
Merge remote-tracking branch 'upstream/main' into dotnet-8-samples
lbussell Sep 12, 2023
d3682bd
Update complex app to net8.0 TFM
lbussell Sep 13, 2023
6956662
Update globalapp to net8.0 TFM
lbussell Sep 13, 2023
5b7a5d3
Update more complexapp TFMs
lbussell Sep 13, 2023
22b55d3
Update READMEs
richlander Sep 13, 2023
b44093a
Use platform specific windows server version for complex app test
lbussell Sep 13, 2023
1f5aa1f
Revert "Use platform specific windows server version for complex app …
lbussell Sep 14, 2023
fdc8ef9
Disable test on Windows
lbussell Sep 14, 2023
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
20 changes: 10 additions & 10 deletions README.samples.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,32 +60,32 @@ See [Hosting ASP.NET Core Images with Docker over HTTPS](https://github.com/dotn
## Linux amd64 Tags
Tags | Dockerfile | OS Version
-----------| -------------| -------------
dotnetapp-alpine-slim-amd64, dotnetapp, latest | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/dotnetapp/Dockerfile.alpine-slim) | Alpine
aspnetapp-alpine-slim-amd64, aspnetapp | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile.alpine-slim) | Alpine
dotnetapp-jammy-chiseled-amd64, dotnetapp, latest | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/dotnetapp/Dockerfile.chiseled) | Ubuntu
aspnetapp-jammy-chiseled-composite-amd64, aspnetapp | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile.chiseled) | Ubuntu

## Linux arm32 Tags
Tags | Dockerfile | OS Version
-----------| -------------| -------------
dotnetapp-alpine-slim-arm32v7, dotnetapp, latest | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/dotnetapp/Dockerfile.alpine-slim) | Alpine
aspnetapp-alpine-slim-arm32v7, aspnetapp | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile.alpine-slim) | Alpine
dotnetapp-jammy-chiseled-arm32v7, dotnetapp, latest | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/dotnetapp/Dockerfile.chiseled) | Ubuntu
aspnetapp-jammy-chiseled-composite-arm32v7, aspnetapp | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile.chiseled-composite) | Ubuntu

## Linux arm64 Tags
Tags | Dockerfile | OS Version
-----------| -------------| -------------
dotnetapp-alpine-slim-arm64v8, dotnetapp, latest | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/dotnetapp/Dockerfile.alpine-slim) | Alpine
aspnetapp-alpine-slim-arm64v8, aspnetapp | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile.alpine-slim) | Alpine
dotnetapp-jammy-chiseled-arm64v8, dotnetapp, latest | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/dotnetapp/Dockerfile.chiseled) | Ubuntu
aspnetapp-jammy-chiseled-composite-arm64v8, aspnetapp | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile.chiseled-composite) | Ubuntu

## Nano Server 2022 amd64 Tags
Tag | Dockerfile
---------| ---------------
dotnetapp-nanoserver-ltsc2022, dotnetapp, latest | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/dotnetapp/Dockerfile)
aspnetapp-nanoserver-ltsc2022, aspnetapp | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile.nanoserver-slim)
dotnetapp-nanoserver-ltsc2022, dotnetapp, latest | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/dotnetapp/Dockerfile.nanoserver)
aspnetapp-nanoserver-ltsc2022, aspnetapp | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile.nanoserver)

## Nano Server, version 1809 amd64 Tags
Tag | Dockerfile
---------| ---------------
dotnetapp-nanoserver-1809, dotnetapp, latest | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/dotnetapp/Dockerfile)
aspnetapp-nanoserver-1809, aspnetapp | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile.nanoserver-slim)
dotnetapp-nanoserver-1809, dotnetapp, latest | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/dotnetapp/Dockerfile.nanoserver)
aspnetapp-nanoserver-1809, aspnetapp | [Dockerfile](https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile.nanoserver)

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-->
Expand Down
2 changes: 1 addition & 1 deletion eng/common/templates/steps/init-docker-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ steps:
condition: and(succeeded(), ${{ parameters.condition }})
- script: >
echo "##vso[task.setvariable variable=runImageBuilderCmd]
docker run --rm
\$env:DOCKER_BUILDKIT=1; docker run --rm
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shouldn't be needed anymore.

-v /var/run/docker.sock:/var/run/docker.sock
-v $(Build.ArtifactStagingDirectory):$(artifactsPath)
-w /repo
Expand Down
2 changes: 1 addition & 1 deletion eng/common/templates/variables/docker-images.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
variables:
imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder:2230260
imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder:2233114
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder:2233114
imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder:2240150

imageNames.imageBuilder: $(imageNames.imageBuilderName)
imageNames.imageBuilder.withrepo: imagebuilder-withrepo:$(Build.BuildId)-$(System.JobId)
imageNames.testRunner: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-bullseye-slim-docker-testrunner
Expand Down
12 changes: 6 additions & 6 deletions eng/mcr-tags-metadata-templates/samples-tags.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
$(McrTagsYmlRepo:samples)
$(McrTagsYmlTagGroup:dotnetapp-alpine-slim-amd64)
$(McrTagsYmlTagGroup:aspnetapp-alpine-slim-amd64)
$(McrTagsYmlTagGroup:dotnetapp-alpine-slim-arm32v7)
$(McrTagsYmlTagGroup:aspnetapp-alpine-slim-arm32v7)
$(McrTagsYmlTagGroup:dotnetapp-alpine-slim-arm64v8)
$(McrTagsYmlTagGroup:aspnetapp-alpine-slim-arm64v8)
$(McrTagsYmlTagGroup:dotnetapp-jammy-chiseled-amd64)
$(McrTagsYmlTagGroup:aspnetapp-jammy-chiseled-composite-amd64)
$(McrTagsYmlTagGroup:dotnetapp-jammy-chiseled-arm32v7)
$(McrTagsYmlTagGroup:aspnetapp-jammy-chiseled-composite-arm32v7)
$(McrTagsYmlTagGroup:dotnetapp-jammy-chiseled-arm64v8)
$(McrTagsYmlTagGroup:aspnetapp-jammy-chiseled-composite-arm64v8)
$(McrTagsYmlTagGroup:dotnetapp-nanoserver-ltsc2022)
$(McrTagsYmlTagGroup:aspnetapp-nanoserver-ltsc2022)
$(McrTagsYmlTagGroup:dotnetapp-nanoserver-1809)
Expand Down
56 changes: 31 additions & 25 deletions manifest.samples.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,35 +31,38 @@
},
"platforms": [
{
"dockerfile": "samples/dotnetapp/Dockerfile.alpine-slim",
"dockerfile": "samples/dotnetapp/Dockerfile.chiseled",
"os": "linux",
"osVersion": "alpine",
"osVersion": "ubuntu",
"tags": {
"dotnetapp-alpine-slim-amd64": {}
"dotnetapp-jammy-chiseled-amd64": {}
}
},
{
"architecture": "arm",
"dockerfile": "samples/dotnetapp/Dockerfile.alpine-slim",
"dockerfile": "samples/dotnetapp/Dockerfile.chiseled",
"os": "linux",
"osVersion": "alpine",
"osVersion": "ubuntu",
"tags": {
"dotnetapp-alpine-slim-arm32v7": {}
"dotnetapp-jammy-chiseled-arm32v7": {}
},
"variant": "v7"
},
{
"architecture": "arm64",
"dockerfile": "samples/dotnetapp/Dockerfile.alpine-slim",
"dockerfile": "samples/dotnetapp/Dockerfile.chiseled",
"os": "linux",
"osVersion": "alpine",
"osVersion": "ubuntu",
"tags": {
"dotnetapp-alpine-slim-arm64v8": {}
"dotnetapp-jammy-chiseled-arm64v8": {}
},
"variant": "v8"
},
{
"dockerfile": "samples/dotnetapp",
"buildArgs": {
"TAG": "1809"
},
"dockerfile": "samples/dotnetapp/Dockerfile.nanoserver",
"os": "windows",
"osVersion": "nanoserver-1809",
"tags": {
Expand All @@ -71,7 +74,10 @@
}
},
{
"dockerfile": "samples/dotnetapp",
"buildArgs": {
"TAG": "ltsc2022"
},
"dockerfile": "samples/dotnetapp/Dockerfile.nanoserver",
"os": "windows",
"osVersion": "nanoserver-ltsc2022",
"tags": {
Expand All @@ -90,56 +96,56 @@
},
"platforms": [
{
"dockerfile": "samples/aspnetapp/Dockerfile.alpine-slim",
"dockerfile": "samples/aspnetapp/Dockerfile.chiseled",
"os": "linux",
"osVersion": "alpine",
"osVersion": "ubuntu",
"tags": {
"aspnetapp-alpine-slim-amd64": {}
"aspnetapp-jammy-chiseled-composite-amd64": {}
},
"customBuildLegGroups": [
{
"name": "test-dependencies",
"type": "Integral",
"dependencies": [
"$(Repo:samples):dotnetapp-alpine-slim-amd64"
"$(Repo:samples):dotnetapp-jammy-chiseled-amd64"
]
}
]
},
{
"architecture": "arm",
"dockerfile": "samples/aspnetapp/Dockerfile.alpine-slim",
"dockerfile": "samples/aspnetapp/Dockerfile.chiseled-composite",
"os": "linux",
"osVersion": "alpine",
"osVersion": "ubuntu",
"tags": {
"aspnetapp-alpine-slim-arm32v7": {}
"aspnetapp-jammy-chiseled-composite-arm32v7": {}
},
"variant": "v7",
"customBuildLegGroups": [
{
"name": "test-dependencies",
"type": "Integral",
"dependencies": [
"$(Repo:samples):dotnetapp-alpine-slim-arm32v7"
"$(Repo:samples):dotnetapp-jammy-chiseled-arm32v7"
]
}
]
},
{
"architecture": "arm64",
"dockerfile": "samples/aspnetapp/Dockerfile.alpine-slim",
"dockerfile": "samples/aspnetapp/Dockerfile.chiseled-composite",
"os": "linux",
"osVersion": "alpine",
"osVersion": "ubuntu",
"tags": {
"aspnetapp-alpine-slim-arm64v8": {}
"aspnetapp-jammy-chiseled-composite-arm64v8": {}
},
"variant": "v8",
"customBuildLegGroups": [
{
"name": "test-dependencies",
"type": "Integral",
"dependencies": [
"$(Repo:samples):dotnetapp-alpine-slim-arm64v8"
"$(Repo:samples):dotnetapp-jammy-chiseled-arm64v8"
]
}
]
Expand All @@ -148,7 +154,7 @@
"buildArgs": {
"TAG": "1809"
},
"dockerfile": "samples/aspnetapp/Dockerfile.nanoserver-slim",
"dockerfile": "samples/aspnetapp/Dockerfile.nanoserver",
"os": "windows",
"osVersion": "nanoserver-1809",
"tags": {
Expand All @@ -172,7 +178,7 @@
"buildArgs": {
"TAG": "ltsc2022"
},
"dockerfile": "samples/aspnetapp/Dockerfile.nanoserver-slim",
"dockerfile": "samples/aspnetapp/Dockerfile.nanoserver",
"os": "windows",
"osVersion": "nanoserver-ltsc2022",
"tags": {
Expand Down
2 changes: 2 additions & 0 deletions samples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ Kubernetes samples are provided in the [kubernetes](kubernetes/README.md) direct

* [Build a .NET container image](dotnetapp/README.md)
* [Build an ASP.NET Core container image](aspnetapp/README.md)
* [Build a single file app](releasesapp-singlefile/README.md)
* [Build a Native AOT app](releasesapi-aot/README.md)
* [Building a globalization and time zone aware (or unaware) image](globalapp/README.md)
* [Build for a platform](build-for-a-platform.md)

Expand Down
14 changes: 8 additions & 6 deletions samples/aspnetapp/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
# Learn about building .NET container images:
# https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0-preview AS build
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All 8.0-preview tags in this PR will need to be updated to just 8.0.

ARG TARGETARCH
WORKDIR /source

# copy csproj and restore as distinct layers
COPY aspnetapp/*.csproj .
RUN dotnet restore --use-current-runtime
RUN dotnet restore -a $TARGETARCH

# copy everything else and build app
# copy and publish app and libraries
COPY aspnetapp/. .
RUN dotnet publish --use-current-runtime --self-contained false --no-restore -o /app
RUN dotnet publish -a $TARGETARCH --no-restore -o /app


# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:7.0
FROM mcr.microsoft.com/dotnet/aspnet:8.0-preview
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
USER $APP_UID
ENTRYPOINT ["./aspnetapp"]
13 changes: 7 additions & 6 deletions samples/aspnetapp/Dockerfile.alpine
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
# Learn about building .NET container images:
# https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md
FROM mcr.microsoft.com/dotnet/sdk:7.0-alpine AS build

FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0-preview-alpine AS build
ARG TARGETARCH
WORKDIR /source

# copy csproj and restore as distinct layers
COPY aspnetapp/*.csproj .
RUN dotnet restore --use-current-runtime
RUN dotnet restore -a $TARGETARCH

# copy everything else and build app
# copy and publish app and libraries
COPY aspnetapp/. .
RUN dotnet publish --use-current-runtime --self-contained false --no-restore -o /app
RUN dotnet publish -a $TARGETARCH --no-restore -o /app


# Enable globalization and time zones:
# https://github.com/dotnet/dotnet-docker/blob/main/samples/enable-globalization.md
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:7.0-alpine
FROM mcr.microsoft.com/dotnet/aspnet:8.0-preview-alpine
WORKDIR /app
COPY --from=build /app .
USER $APP_UID
ENTRYPOINT ["./aspnetapp"]
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,16 @@ WORKDIR /source
COPY aspnetapp/*.csproj .
RUN dotnet restore -a $TARGETARCH

# copy everything else and build app
# copy and publish app and libraries
COPY aspnetapp/. .
RUN dotnet publish -a $TARGETARCH --no-restore -o /app


# Enable globalization and time zones:
# https://github.com/dotnet/dotnet-docker/blob/main/samples/enable-globalization.md
# final stage/image
# .NET 8 tag includes `-preview`
FROM mcr.microsoft.com/dotnet/aspnet:8.0-preview-alpine

# These ENVs are only needed because the sample uses .NET 7
ENV DOTNET_ROLL_FORWARD=Major
ENV DOTNET_ROLL_FORWARD_PRE_RELEASE=1

FROM mcr.microsoft.com/dotnet/nightly/aspnet:8.0-preview-alpine-composite
WORKDIR /app
COPY --from=build /app .

USER $APP_UID
ENTRYPOINT ["./aspnetapp"]
13 changes: 7 additions & 6 deletions samples/aspnetapp/Dockerfile.alpine-icu
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# Learn about building .NET container images:
# https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md
FROM mcr.microsoft.com/dotnet/sdk:7.0-alpine AS build

FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0-preview-alpine AS build
ARG TARGETARCH
WORKDIR /source

# copy csproj and restore as distinct layers
COPY aspnetapp/*.csproj .
RUN dotnet restore --use-current-runtime
RUN dotnet restore -a $TARGETARCH

# copy everything else and build app
# copy and publish app and libraries
COPY aspnetapp/. .
RUN dotnet publish --use-current-runtime --self-contained false --no-restore -o /app
RUN dotnet publish -a $TARGETARCH --no-restore -o /app


# Enable globalization and time zones:
# https://github.com/dotnet/dotnet-docker/blob/main/samples/enable-globalization.md
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:7.0-alpine
FROM mcr.microsoft.com/dotnet/aspnet:8.0-preview-alpine

ENV \
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \
Expand All @@ -28,4 +28,5 @@ RUN apk add --no-cache \

WORKDIR /app
COPY --from=build /app .
USER $APP_UID
ENTRYPOINT ["./aspnetapp"]
24 changes: 0 additions & 24 deletions samples/aspnetapp/Dockerfile.alpine-slim

This file was deleted.

Loading