diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 45c9e06..9fd0b61 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: "Chiselled Ubuntu .NET8 Tests" +name: "Chiselled Ubuntu .NET9 Tests" on: push @@ -6,7 +6,7 @@ env: runtime-deps-image-name: ubuntu/dotnet-deps:test runtime-image-name: ubuntu/dotnet-runtime:test aspnet-image-name: ubuntu/dotnet-aspnet:test - dotnet-version: "8.0" + dotnet-version: "9.0" skopeo-image: 'quay.io/skopeo/stable:v1.15.1' jobs: @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: true matrix: - ubuntu-release: ["24.04"] + ubuntu-release: ["24.10"] steps: - uses: actions/checkout@v4 @@ -29,7 +29,7 @@ jobs: - uses: actions/setup-dotnet@v4 with: - dotnet-version: "8.0.100-rc.2.23502.2" + dotnet-version: "9.0.x" # Setup QEMU and Docker buildx - name: Set up QEMU @@ -67,7 +67,7 @@ jobs: - name: Build the .NET runtime deps container image run: | set -x - archs=`cat rockcraft.*.dotnet-deps-8.0-${{ matrix.ubuntu-release }}.yaml | shyaml get-value platforms | shyaml keys` + archs=`cat rockcraft.*.dotnet-deps-9.0-${{ matrix.ubuntu-release }}.yaml | shyaml get-value platforms | shyaml keys` buildx_platforms="linux/$(echo ${archs} | sed 's/ /,linux\//g')" docker buildx build \ @@ -105,7 +105,7 @@ jobs: - name: Build the .NET runtime container image run: | set -x - archs=`cat rockcraft.*.dotnet-runtime-8.0-${{ matrix.ubuntu-release }}.yaml | shyaml get-value platforms | shyaml keys` + archs=`cat rockcraft.*.dotnet-runtime-9.0-${{ matrix.ubuntu-release }}.yaml | shyaml get-value platforms | shyaml keys` buildx_platforms="linux/$(echo ${archs} | sed 's/ /,linux\//g')" docker buildx build \ @@ -143,7 +143,7 @@ jobs: - name: Build the ASP.NET Core runtime container image run: | set -x - archs=`cat rockcraft.*.dotnet-aspnet-8.0-${{ matrix.ubuntu-release }}.yaml | shyaml get-value platforms | shyaml keys` + archs=`cat rockcraft.*.dotnet-aspnet-9.0-${{ matrix.ubuntu-release }}.yaml | shyaml get-value platforms | shyaml keys` buildx_platforms="linux/$(echo ${archs} | sed 's/ /,linux\//g')" docker buildx build \ diff --git a/README.md b/README.md index 3e89e67..16522b2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Chiselled .NET 8.0 +# Chiselled .NET 9.0 -Chiselled Ubuntu container images for .NET 8.0. +Chiselled Ubuntu container images for .NET 9.0. Find more details about each image and their usage at: diff --git a/dotnet-aspnet/Dockerfile.24.04 b/dotnet-aspnet/Dockerfile.24.10 similarity index 85% rename from dotnet-aspnet/Dockerfile.24.04 rename to dotnet-aspnet/Dockerfile.24.10 index ed63859..be645bd 100644 --- a/dotnet-aspnet/Dockerfile.24.04 +++ b/dotnet-aspnet/Dockerfile.24.10 @@ -1,8 +1,8 @@ -ARG UBUNTU_RELEASE=24.04 +ARG UBUNTU_RELEASE=24.10 ARG USER=app UID=101 GROUP=app GID=101 ARG CHISEL_VERSION=1.0.0 -FROM ubuntu.azurecr.io/ubuntu:$UBUNTU_RELEASE@sha256:da20fb875cfefd317c49e7aaf3998d3e5ad42c5b20f34a0eec6dca2fe4fbb8f4 AS builder +FROM ubuntu.azurecr.io/ubuntu:$UBUNTU_RELEASE@sha256:fad5ba7223f8d87179dfa23211d31845d47e07a474ac31ad5258afb606523c0d AS builder ARG USER UID GROUP GID TARGETARCH UBUNTU_RELEASE CHISEL_VERSION SHELL ["/bin/bash", "-oeux", "pipefail", "-c"] RUN apt-get update \ @@ -21,7 +21,9 @@ RUN mkdir /rootfs \ base-files_release-info \ base-files_chisel \ ca-certificates_data \ - aspnetcore-runtime-8.0_libs + aspnetcore-runtime-9.0_libs +RUN mv /rootfs/usr/lib/dotnet/dotnet9 /rootfs/usr/lib/dotnet/dotnet \ + && ln -s ../lib/dotnet/dotnet /rootfs/usr/bin/dotnet RUN install -d -m 0755 -o "$UID" -g "$GID" "/rootfs/home/$USER" \ && echo -e "root:x:0:\n$GROUP:x:$GID:" >/rootfs/etc/group \ && echo -e "root:x:0:0:root:/root:/noshell\n$USER:x:$UID:$GID::/home/$USER:/noshell" >/rootfs/etc/passwd diff --git a/dotnet-deps/Dockerfile.24.04 b/dotnet-deps/Dockerfile.24.10 similarity index 90% rename from dotnet-deps/Dockerfile.24.04 rename to dotnet-deps/Dockerfile.24.10 index 59c9034..3e0a057 100644 --- a/dotnet-deps/Dockerfile.24.04 +++ b/dotnet-deps/Dockerfile.24.10 @@ -1,8 +1,8 @@ -ARG UBUNTU_RELEASE=24.04 +ARG UBUNTU_RELEASE=24.10 ARG USER=app UID=101 GROUP=app GID=101 ARG CHISEL_VERSION=1.0.0 -FROM ubuntu.azurecr.io/ubuntu:$UBUNTU_RELEASE@sha256:da20fb875cfefd317c49e7aaf3998d3e5ad42c5b20f34a0eec6dca2fe4fbb8f4 AS builder +FROM ubuntu.azurecr.io/ubuntu:$UBUNTU_RELEASE@sha256:fad5ba7223f8d87179dfa23211d31845d47e07a474ac31ad5258afb606523c0d AS builder ARG USER UID GROUP GID TARGETARCH UBUNTU_RELEASE CHISEL_VERSION SHELL ["/bin/bash", "-oeux", "pipefail", "-c"] RUN apt-get update \ @@ -25,10 +25,12 @@ RUN chisel-wrapper --generate-dpkg-status /status -- --release "ubuntu-$UBUNTU_R base-files_release-info \ base-files_chisel \ ca-certificates_data \ + libbrotli1_libs \ libc6_libs \ libgcc-s1_libs \ libssl3t64_libs \ libstdc++6_libs \ + libunwind8_libs \ zlib1g_libs FROM scratch AS sbom-prep diff --git a/dotnet-runtime/Dockerfile.24.04 b/dotnet-runtime/Dockerfile.24.10 similarity index 86% rename from dotnet-runtime/Dockerfile.24.04 rename to dotnet-runtime/Dockerfile.24.10 index aaad605..a211876 100644 --- a/dotnet-runtime/Dockerfile.24.04 +++ b/dotnet-runtime/Dockerfile.24.10 @@ -1,8 +1,8 @@ -ARG UBUNTU_RELEASE=24.04 +ARG UBUNTU_RELEASE=24.10 ARG USER=app UID=101 GROUP=app GID=101 ARG CHISEL_VERSION=1.0.0 -FROM ubuntu.azurecr.io/ubuntu:$UBUNTU_RELEASE@sha256:da20fb875cfefd317c49e7aaf3998d3e5ad42c5b20f34a0eec6dca2fe4fbb8f4 AS builder +FROM ubuntu.azurecr.io/ubuntu:$UBUNTU_RELEASE@sha256:fad5ba7223f8d87179dfa23211d31845d47e07a474ac31ad5258afb606523c0d AS builder ARG USER UID GROUP GID TARGETARCH UBUNTU_RELEASE CHISEL_VERSION SHELL ["/bin/bash", "-oeux", "pipefail", "-c"] RUN apt-get update \ @@ -21,7 +21,9 @@ RUN mkdir /rootfs \ base-files_release-info \ base-files_chisel \ ca-certificates_data \ - dotnet-runtime-8.0_libs + dotnet-runtime-9.0_libs +RUN mv /rootfs/usr/lib/dotnet/dotnet9 /rootfs/usr/lib/dotnet/dotnet \ + && ln -s ../lib/dotnet/dotnet /rootfs/usr/bin/dotnet RUN install -d -m 0755 -o "$UID" -g "$GID" "/rootfs/home/$USER" \ && echo -e "root:x:0:\n$GROUP:x:$GID:" >/rootfs/etc/group \ && echo -e "root:x:0:0:root:/root:/noshell\n$USER:x:$UID:$GID::/home/$USER:/noshell" >/rootfs/etc/passwd diff --git a/rockcraft.1.dotnet-deps-8.0-24.04.yaml b/rockcraft.1.dotnet-deps-9.0-24.10.yaml similarity index 84% rename from rockcraft.1.dotnet-deps-8.0-24.04.yaml rename to rockcraft.1.dotnet-deps-9.0-24.10.yaml index eae845e..4c0474d 100644 --- a/rockcraft.1.dotnet-deps-8.0-24.04.yaml +++ b/rockcraft.1.dotnet-deps-9.0-24.10.yaml @@ -1,6 +1,6 @@ name: dotnet-deps -version: 8.0 -base: 24.04 +version: 9.0 +base: 24.10 platforms: amd64: arm64: diff --git a/rockcraft.2.dotnet-runtime-8.0-24.04.yaml b/rockcraft.2.dotnet-runtime-9.0-24.10.yaml similarity index 80% rename from rockcraft.2.dotnet-runtime-8.0-24.04.yaml rename to rockcraft.2.dotnet-runtime-9.0-24.10.yaml index c7487e5..c5378f4 100644 --- a/rockcraft.2.dotnet-runtime-8.0-24.04.yaml +++ b/rockcraft.2.dotnet-runtime-9.0-24.10.yaml @@ -1,6 +1,6 @@ name: dotnet-runtime -version: 8.0 -base: 24.04 +version: 9.0 +base: 24.10 platforms: amd64: arm64: diff --git a/rockcraft.3.dotnet-aspnet-8.0-24.04.yaml b/rockcraft.3.dotnet-aspnet-9.0-24.10.yaml similarity index 80% rename from rockcraft.3.dotnet-aspnet-8.0-24.04.yaml rename to rockcraft.3.dotnet-aspnet-9.0-24.10.yaml index 94aae10..490e804 100644 --- a/rockcraft.3.dotnet-aspnet-8.0-24.04.yaml +++ b/rockcraft.3.dotnet-aspnet-9.0-24.10.yaml @@ -1,6 +1,6 @@ name: dotnet-aspnet -version: 8.0 -base: 24.04 +version: 9.0 +base: 24.10 platforms: amd64: arm64: diff --git a/tests/app_helloworld-self-contained/runtest b/tests/app_helloworld-self-contained/runtest index c064ff4..67b51a4 100755 --- a/tests/app_helloworld-self-contained/runtest +++ b/tests/app_helloworld-self-contained/runtest @@ -6,7 +6,7 @@ echo "Running test for self-contained .NET Hello World app" (cd src && dotnet publish --self-contained -r linux-x64) RunContainer() { - docker run --rm -v $PWD/src:/app:ro --user $1 --entrypoint /app/bin/Release/net8.0/linux-x64/Hello $RUNTIME_DEPS_IMAGE + docker run --rm -v $PWD/src:/app:ro --user $1 --entrypoint /app/bin/Release/net9.0/linux-x64/Hello $RUNTIME_DEPS_IMAGE } RunContainer app diff --git a/tests/app_helloworld-self-contained/src/Hello.csproj b/tests/app_helloworld-self-contained/src/Hello.csproj index 91b464a..694035b 100644 --- a/tests/app_helloworld-self-contained/src/Hello.csproj +++ b/tests/app_helloworld-self-contained/src/Hello.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 enable enable diff --git a/tests/app_helloworld/runtest b/tests/app_helloworld/runtest index 184e351..2593cc7 100755 --- a/tests/app_helloworld/runtest +++ b/tests/app_helloworld/runtest @@ -6,7 +6,7 @@ echo "Running test for .NET Hello World app" (cd src && dotnet publish --no-self-contained -r linux-x64) RunContainer() { - docker run --rm -v $PWD/src:/app:ro --user $1 $RUNTIME_IMAGE /app/bin/Release/net8.0/linux-x64/Hello.dll + docker run --rm -v $PWD/src:/app:ro --user $1 $RUNTIME_IMAGE /app/bin/Release/net9.0/linux-x64/Hello.dll } RunContainer app diff --git a/tests/app_helloworld/src/Hello.csproj b/tests/app_helloworld/src/Hello.csproj index 91b464a..694035b 100644 --- a/tests/app_helloworld/src/Hello.csproj +++ b/tests/app_helloworld/src/Hello.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 enable enable diff --git a/tests/app_https-client/runtest b/tests/app_https-client/runtest index 99ec4ce..825d7df 100755 --- a/tests/app_https-client/runtest +++ b/tests/app_https-client/runtest @@ -5,4 +5,4 @@ echo "Running test for .NET HTTPS client app " (cd src && dotnet publish --no-self-contained -r linux-x64) -docker run --rm -v $PWD/src:/app:ro $RUNTIME_IMAGE /app/bin/Release/net8.0/linux-x64/Hello.dll +docker run --rm -v $PWD/src:/app:ro $RUNTIME_IMAGE /app/bin/Release/net9.0/linux-x64/Hello.dll diff --git a/tests/app_https-client/src/Hello.csproj b/tests/app_https-client/src/Hello.csproj index 91b464a..694035b 100644 --- a/tests/app_https-client/src/Hello.csproj +++ b/tests/app_https-client/src/Hello.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 enable enable diff --git a/tests/web_helloworld/runtest b/tests/web_helloworld/runtest index 3a454d0..0c96dc7 100755 --- a/tests/web_helloworld/runtest +++ b/tests/web_helloworld/runtest @@ -6,7 +6,7 @@ echo "Running test for ASP.NET Core app " (cd src && dotnet publish --no-self-contained -r linux-x64) RunContainer() { - docker run -d -p 8000:8080 --name web_helloworld -v $PWD/src:/app:ro --user $1 $ASPNET_IMAGE /app/bin/Release/net8.0/linux-x64/Hello.dll + docker run -d -p 8000:8080 --name web_helloworld -v $PWD/src:/app:ro --user $1 $ASPNET_IMAGE /app/bin/Release/net9.0/linux-x64/Hello.dll # Allow time for web app to start sleep 5 diff --git a/tests/web_helloworld/src/Hello.csproj b/tests/web_helloworld/src/Hello.csproj index 1b28a01..6568b3d 100644 --- a/tests/web_helloworld/src/Hello.csproj +++ b/tests/web_helloworld/src/Hello.csproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 enable enable