Skip to content

Commit

Permalink
Dotnet 8 Isolated Mariner Image (#1027)
Browse files Browse the repository at this point in the history
* Update dockerfile

* Fix host version and docker commands

* Temporarily enable glibc-devel installation

* Update dockerfile

* Fix host version and docker commands

* Temporarily enable glibc-devel installation

* Add file

* Add dotnet8 isolated dockerfile

* Update dockerfile

* Fix host version and docker commands

* Temporarily enable glibc-devel installation

* Add file

* Add dotnet8 isolated dockerfile

* Fix host version and docker commands

* Temporarily enable glibc-devel installation

* modify republish file

* Modify publish.yml

* merge complete

* Temporary todo

* update dotnet-build.yml

* Update image file names

* Expose correct port

* Update dotnet-build.yml
  • Loading branch information
zahalzel authored Feb 9, 2024
1 parent 788dd90 commit 89653b7
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 2 deletions.
9 changes: 7 additions & 2 deletions host/4/dotnet-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ jobs:
dockerImagePath: "dotnet-isolated"
dockerImageName: "-dotnet-isolated7.0-appservice"
_isolated-net-7-mariner:
dotnetVersion: "dotnet7-isolated"
dotnetVersion: "dotnet7-isolated-mariner"
dockerfilePath: "host/4/mariner/dotnet/dotnet-isolated/"
dockerImagePath: "dotnet-isolated"
dockerImageName: "-dotnet-isolated7.0-mariner"
Expand All @@ -96,6 +96,11 @@ jobs:
dockerfilePath: "host/4/bullseye/amd64/out/dotnet/"
dockerImagePath: "dotnet-isolated"
dockerImageName: "-dotnet-isolated8.0-appservice"
_isolated-net-8-mariner:
dotnetVersion: "dotnet8-isolated-mariner"
dockerfilePath: "host/4/mariner/dotnet/dotnet-isolated/"
dockerImagePath: "dotnet-isolated"
dockerImageName: "-dotnet-isolated8.0-mariner"
_bookwork-net-6:
dotnetVersion: "dotnet6"
dockerfilePath: "host/4/bookworm/dotnet/"
Expand Down Expand Up @@ -145,4 +150,4 @@ jobs:
displayName: 'Publish SBOM Artifact'
inputs:
targetPath: host/_manifest
artifact: SBOM-Functionsv4-dotnet-$(Build.SourceBranchName)
artifact: SBOM-Functionsv4-dotnet-$(Build.SourceBranchName)
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Build the runtime from source
ARG HOST_VERSION=4.29.1
FROM mcr.microsoft.com/dotnet/sdk:6.0-cbl-mariner2.0 AS sdk-image
ARG HOST_VERSION

ENV PublishWithAspNetCoreTargetManifest=false

RUN BUILD_NUMBER=$(echo ${HOST_VERSION} | cut -d'.' -f 3) && \
git clone --branch v${HOST_VERSION} https://github.com/Azure/azure-functions-host /src/azure-functions-host && \
cd /src/azure-functions-host && \
HOST_COMMIT=$(git rev-list -1 HEAD) && \
dotnet publish -v q /p:BuildNumber=$BUILD_NUMBER /p:CommitHash=$HOST_COMMIT src/WebJobs.Script.WebHost/WebJobs.Script.WebHost.csproj -c Release --output /azure-functions-host --runtime linux-x64 --self-contained && \
mv /azure-functions-host/workers /workers && mkdir /azure-functions-host/workers && \
rm -rf /root/.local /root/.nuget /src

# Include ASP.NET Core shared framework from dotnet/aspnet image.
FROM mcr.microsoft.com/dotnet/aspnet:8.0-cbl-mariner2.0 AS aspnet8

FROM mcr.microsoft.com/dotnet/runtime:8.0-cbl-mariner2.0
ARG HOST_VERSION

RUN yum install -y dnf

ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
HOME=/home \
FUNCTIONS_WORKER_RUNTIME=dotnet-isolated \
DOTNET_USE_POLLING_FILE_WATCHER=true \
HOST_VERSION=${HOST_VERSION} \
ASPNETCORE_CONTENTROOT=/azure-functions-host \
AzureWebJobsFeatureFlags=EnableWorkerIndexing \
ASPNETCORE_URLS=http://+:80

# Fix from https://github.com/GoogleCloudPlatform/google-cloud-dotnet-powerpack/issues/22#issuecomment-729895157
RUN dnf install -y glibc-devel

COPY --from=sdk-image [ "/azure-functions-host", "/azure-functions-host" ]
COPY --from=aspnet8 [ "/usr/share/dotnet", "/usr/share/dotnet" ]

CMD [ "/azure-functions-host/Microsoft.Azure.WebJobs.Script.WebHost" ]
12 changes: 12 additions & 0 deletions host/4/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,18 @@ steps:
displayName: tag and push dotnet8-isolated images
continueOnError: false
- bash: |
set -e
docker pull $SOURCE_REGISTRY/dotnet-isolated:$(PrivateVersion)-dotnet-isolated8.0-mariner
docker tag $SOURCE_REGISTRY/dotnet-isolated:$(PrivateVersion)-dotnet-isolated8.0-mariner $TARGET_REGISTRY/dotnet-isolated:$(TargetVersion)-dotnet-isolated8.0-mariner
docker push $TARGET_REGISTRY/dotnet-isolated:$(TargetVersion)-dotnet-isolated8.0-mariner
docker system prune -a -f
displayName: tag and push dotnet8-isolated mariner images
continueOnError: false
- bash: |
set -e
docker pull $SOURCE_REGISTRY/java:$(PrivateVersion)-java8
Expand Down
12 changes: 12 additions & 0 deletions host/4/republish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,18 @@ steps:
displayName: tag and push dotnet8-isolated images
continueOnError: false
- bash: |
set -e
docker pull $SOURCE_REGISTRY/dotnet-isolated:$(PrivateVersion)-dotnet-isolated8.0-mariner
docker tag $SOURCE_REGISTRY/dotnet-isolated:$(PrivateVersion)-dotnet-isolated8.0-mariner $TARGET_REGISTRY/dotnet-isolated:$(TargetVersion)-dotnet-isolated8.0-mariner
docker push $TARGET_REGISTRY/dotnet-isolated:$(TargetVersion)-dotnet-isolated8.0-mariner
docker system prune -a -f
displayName: tag and push dotnet8-isolated mariner images
continueOnError: false
- bash: |
set -e
docker pull $SOURCE_REGISTRY/java:$(PrivateVersion)-java8
Expand Down

0 comments on commit 89653b7

Please sign in to comment.