From 8e94a36d2608a1e5d87f60795022412f824fee78 Mon Sep 17 00:00:00 2001 From: Dominik Niebuhr Date: Wed, 28 Jan 2026 09:54:45 +0100 Subject: [PATCH 1/2] chore: remove support for 'jammy' flavor in Docker scripts --- .github/workflows/test_docker.yml | 2 +- utils/docker/build.sh | 2 +- utils/docker/publish_docker.sh | 20 ++++---------------- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/.github/workflows/test_docker.yml b/.github/workflows/test_docker.yml index ed4ec027f2..17a8928cf3 100644 --- a/.github/workflows/test_docker.yml +++ b/.github/workflows/test_docker.yml @@ -23,7 +23,7 @@ jobs: strategy: fail-fast: false matrix: - flavor: [jammy, noble] + flavor: [noble] runs-on: [ubuntu-24.04, ubuntu-24.04-arm] steps: - uses: actions/checkout@v5 diff --git a/utils/docker/build.sh b/utils/docker/build.sh index 09540dbaf0..98bbdc6149 100755 --- a/utils/docker/build.sh +++ b/utils/docker/build.sh @@ -3,7 +3,7 @@ set -e set +x if [[ ($1 == '--help') || ($1 == '-h') || ($1 == '') || ($2 == '') ]]; then - echo "usage: $(basename $0) {--arm64,--amd64} {jammy,noble} playwright:localbuild-noble" + echo "usage: $(basename $0) {--arm64,--amd64} {noble} playwright:localbuild-noble" echo echo "Build Playwright docker image and tag it as 'playwright:localbuild-noble'." echo "Once image is built, you can run it with" diff --git a/utils/docker/publish_docker.sh b/utils/docker/publish_docker.sh index 35d2d9d8de..5ae739c895 100755 --- a/utils/docker/publish_docker.sh +++ b/utils/docker/publish_docker.sh @@ -21,10 +21,6 @@ else exit 1 fi -# Ubuntu 22.04 -JAMMY_TAGS=( - "v${PW_VERSION}-jammy" -) # Ubuntu 24.04 NOBLE_TAGS=( @@ -64,12 +60,10 @@ install_oras_if_needed() { publish_docker_images_with_arch_suffix() { local FLAVOR="$1" local TAGS=() - if [[ "$FLAVOR" == "jammy" ]]; then - TAGS=("${JAMMY_TAGS[@]}") - elif [[ "$FLAVOR" == "noble" ]]; then + if [[ "$FLAVOR" == "noble" ]]; then TAGS=("${NOBLE_TAGS[@]}") else - echo "ERROR: unknown flavor - $FLAVOR. Must be either 'jammy' or 'noble'" + echo "ERROR: unknown flavor - $FLAVOR. Must be 'noble'" exit 1 fi local ARCH="$2" @@ -90,12 +84,10 @@ publish_docker_images_with_arch_suffix() { publish_docker_manifest () { local FLAVOR="$1" local TAGS=() - if [[ "$FLAVOR" == "jammy" ]]; then - TAGS=("${JAMMY_TAGS[@]}") - elif [[ "$FLAVOR" == "noble" ]]; then + if [[ "$FLAVOR" == "noble" ]]; then TAGS=("${NOBLE_TAGS[@]}") else - echo "ERROR: unknown flavor - $FLAVOR. Must be either 'jammy' or 'noble'" + echo "ERROR: unknown flavor - $FLAVOR. Must be 'noble'" exit 1 fi @@ -114,10 +106,6 @@ publish_docker_manifest () { done } -publish_docker_images_with_arch_suffix jammy amd64 -publish_docker_images_with_arch_suffix jammy arm64 -publish_docker_manifest jammy amd64 arm64 - publish_docker_images_with_arch_suffix noble amd64 publish_docker_images_with_arch_suffix noble arm64 publish_docker_manifest noble amd64 arm64 From dee1ab03e00da66889c0fb1dbab4d5aa4332d733 Mon Sep 17 00:00:00 2001 From: Dominik Niebuhr Date: Wed, 28 Jan 2026 09:54:54 +0100 Subject: [PATCH 2/2] chore: update Dockerfile to use .NET SDK 10.0-noble --- utils/docker/Dockerfile.jammy | 46 ----------------------------------- utils/docker/Dockerfile.noble | 2 +- 2 files changed, 1 insertion(+), 47 deletions(-) delete mode 100644 utils/docker/Dockerfile.jammy diff --git a/utils/docker/Dockerfile.jammy b/utils/docker/Dockerfile.jammy deleted file mode 100644 index bc4b833c67..0000000000 --- a/utils/docker/Dockerfile.jammy +++ /dev/null @@ -1,46 +0,0 @@ -FROM mcr.microsoft.com/dotnet/sdk:8.0-jammy - -ARG DEBIAN_FRONTEND=noninteractive -ARG TZ=America/Los_Angeles -ARG DOCKER_IMAGE_NAME_TEMPLATE="mcr.microsoft.com/playwright/dotnet:v%version%-jammy" - -ENV LANG=C.UTF-8 -ENV LC_ALL=C.UTF-8 - -# === INSTALL dependencies === - -RUN apt-get update && \ - # Feature-parity with node.js base images. - apt-get install -y --no-install-recommends git openssh-client curl gpg && \ - # clean apt cache - rm -rf /var/lib/apt/lists/* && \ - # Create the pwuser - adduser pwuser - -# === BAKE BROWSERS INTO IMAGE === - -ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright - -# 1. Add tip-of-tree Playwright package to install its browsers. -# The package should be built beforehand from tip-of-tree Playwright. -COPY ./dist/ /tmp/playwright-dotnet - -# 2. Bake in browsers & deps. -# Browsers will be downloaded in `/ms-playwright`. -# Note: make sure to set 777 to the registry so that any user can access -# registry. -RUN mkdir /ms-playwright && \ - /tmp/playwright-dotnet/playwright.ps1 install --with-deps && \ - /tmp/playwright-dotnet/playwright.ps1 mark-docker-image "${DOCKER_IMAGE_NAME_TEMPLATE}" && \ - # Workaround for https://github.com/microsoft/playwright/issues/27313 - # While the gstreamer plugin load process can be in-process, it ended up throwing - # an error that it can't have libsoup2 and libsoup3 in the same process because - # libgstwebrtc is linked against libsoup2. So we just remove the plugin. - if [ "$(uname -m)" = "aarch64" ]; then \ - rm /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstwebrtc.so; \ - else \ - rm /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwebrtc.so; \ - fi && \ - rm -rf /var/lib/apt/lists/* && \ - rm -rf /tmp/* && \ - chmod -R 777 /ms-playwright diff --git a/utils/docker/Dockerfile.noble b/utils/docker/Dockerfile.noble index 69b880f6dc..35f77c849f 100644 --- a/utils/docker/Dockerfile.noble +++ b/utils/docker/Dockerfile.noble @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/sdk:8.0-noble +FROM mcr.microsoft.com/dotnet/sdk:10.0-noble ARG DEBIAN_FRONTEND=noninteractive ARG TZ=America/Los_Angeles