From 27b21ce142cab87422747756ea0a3a6cc38d97b2 Mon Sep 17 00:00:00 2001 From: thelamer Date: Mon, 27 Jul 2026 10:45:57 -0400 Subject: [PATCH 1/2] add aarch64 support, flag ozone for wayland --- .github/ISSUE_TEMPLATE/issue.bug.yml | 1 + Dockerfile | 2 +- Dockerfile.aarch64 | 48 ++++++++++++++++++++++++++++ Jenkinsfile | 2 ++ README.md | 3 +- jenkins-vars.yml | 1 + readme-vars.yml | 2 ++ root/usr/bin/wrapped-chrome | 8 +++++ 8 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 Dockerfile.aarch64 diff --git a/.github/ISSUE_TEMPLATE/issue.bug.yml b/.github/ISSUE_TEMPLATE/issue.bug.yml index ddf5ee0..adc673d 100644 --- a/.github/ISSUE_TEMPLATE/issue.bug.yml +++ b/.github/ISSUE_TEMPLATE/issue.bug.yml @@ -52,6 +52,7 @@ body: label: CPU architecture options: - x86-64 + - arm64 validations: required: true - type: textarea diff --git a/Dockerfile b/Dockerfile index de6a58e..bf5f407 100644 --- a/Dockerfile +++ b/Dockerfile @@ -43,6 +43,6 @@ RUN \ COPY /root / # ports and volumes -EXPOSE 3000 +EXPOSE 3001 VOLUME /config diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 new file mode 100644 index 0000000..04d3c48 --- /dev/null +++ b/Dockerfile.aarch64 @@ -0,0 +1,48 @@ +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-selkies:arm64v8-debiantrixie + +# set version label +ARG BUILD_DATE +ARG VERSION +ARG CHROME_VERSION +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="thelamer" + +# title +ENV TITLE=Chrome \ + PIXELFLUX_WAYLAND=true + +RUN \ + echo "**** add icon ****" && \ + curl -o \ + /usr/share/selkies/www/icon.png \ + https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/chrome-logo.png && \ + echo "**** setup repo ****" && \ + curl -fsSL \ + https://dl.google.com/linux/linux_signing_key.pub \ + | gpg --dearmor | tee /usr/share/keyrings/google-chrome.gpg >/dev/null && \ + echo "deb [arch=arm64 signed-by=/usr/share/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" >> \ + /etc/apt/sources.list.d/google-chrome.list && \ + echo "**** install packages ****" && \ + if [ -z "${CHROME_VERSION+x}" ]; then \ + CHROME_VERSION=$(curl -sX GET http://dl.google.com/linux/chrome/deb/dists/stable/main/binary-arm64/Packages | grep -A 7 -m 1 'Package: google-chrome-stable' | awk -F ': ' '/Version/{print $2;exit}'); \ + fi && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + google-chrome-stable=${CHROME_VERSION} && \ + echo "**** cleanup ****" && \ + apt-get autoclean && \ + rm -rf \ + /config/.cache \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + /tmp/* + +# add local files +COPY /root / + +# ports and volumes +EXPOSE 3001 + +VOLUME /config diff --git a/Jenkinsfile b/Jenkinsfile index 1cd9240..f66de88 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -33,6 +33,7 @@ pipeline { CI_PORT = '3001' CI_SSL = 'true' CI_DELAY = '120' + CI_WEB_SCREENSHOT_DELAY = '30' CI_DOCKERENV = 'TZ=US/Pacific' CI_AUTH = 'user:password' CI_WEBPATH = '' @@ -894,6 +895,7 @@ pipeline { --shm-size=1gb \ -v /var/run/docker.sock:/var/run/docker.sock \ -e IMAGE=\"${IMAGE}\" \ + -e WEB_SCREENSHOT_DELAY=\"${CI_WEB_SCREENSHOT_DELAY}\" \ -e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \ -e TAGS=\"${CI_TAGS}\" \ -e META_TAG=\"${META_TAG}\" \ diff --git a/README.md b/README.md index b9d06f9..d8e66e7 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ The architectures supported by this image are: | Architecture | Available | Tag | | :----: | :----: | ---- | | x86-64 | ✅ | amd64-\ | -| arm64 | ❌ | | +| arm64 | ✅ | arm64v8-\ | ## Application Setup @@ -646,6 +646,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **27.07.26:** - Add aarch64 support. * **31.03.26:** - Make Wayland default disable with PIXELFLUX_WAYLAND=false. * **20.12.25:** - Add Wayland init logic. * **22.09.25:** - Rebase to Debian Trixie. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 42ca155..b805548 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -23,6 +23,7 @@ repo_vars: - CI_PORT = '3001' - CI_SSL = 'true' - CI_DELAY = '120' + - CI_WEB_SCREENSHOT_DELAY = '30' - CI_DOCKERENV = 'TZ=US/Pacific' - CI_AUTH = 'user:password' - CI_WEBPATH = '' diff --git a/readme-vars.yml b/readme-vars.yml index a0f52ae..672f8fc 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -11,6 +11,7 @@ project_blurb_optional_extras_enabled: false # supported architectures available_architectures: - {arch: "{{ arch_x86_64 }}", tag: "latest"} + - {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} # development version development_versions: false # container parameters @@ -110,6 +111,7 @@ init_diagram: | "chrome:latest" <- Base Images # changelog changelogs: + - {date: "27.07.26:", desc: "Add aarch64 support."} - {date: "31.03.26:", desc: "Make Wayland default disable with PIXELFLUX_WAYLAND=false."} - {date: "20.12.25:", desc: "Add Wayland init logic."} - {date: "22.09.25:", desc: "Rebase to Debian Trixie."} diff --git a/root/usr/bin/wrapped-chrome b/root/usr/bin/wrapped-chrome index 0cdd608..dc0aab4 100755 --- a/root/usr/bin/wrapped-chrome +++ b/root/usr/bin/wrapped-chrome @@ -7,6 +7,13 @@ if pgrep chrome > /dev/null;then rm -f $HOME/.config/google-chrome/Singleton* fi +# Wayland check +if ls -l /dev/dri/* > /dev/null 2>&1; then + if pgrep labwc > /dev/null 2>&1; then + WAYLAND="--ozone-platform=wayland" + fi +fi + ${BIN} \ --no-first-run \ --no-sandbox \ @@ -15,4 +22,5 @@ ${BIN} \ --start-maximized \ --test-type \ --user-data-dir \ + ${WAYLAND} \ "$@" > /dev/null 2>&1 From c2f6cea282ce56aed2718292aeab00004b0e3fb2 Mon Sep 17 00:00:00 2001 From: thelamer Date: Mon, 27 Jul 2026 10:48:58 -0400 Subject: [PATCH 2/2] flag multiarch --- Jenkinsfile | 4 ++-- jenkins-vars.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f66de88..b12f711 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -26,8 +26,8 @@ pipeline { DOCKERHUB_IMAGE = 'linuxserver/chrome' DEV_DOCKERHUB_IMAGE = 'lsiodev/chrome' PR_DOCKERHUB_IMAGE = 'lspipepr/chrome' - DIST_IMAGE = 'ubuntu' - MULTIARCH = 'false' + DIST_IMAGE = 'debian' + MULTIARCH = 'true' CI = 'true' CI_WEB = 'true' CI_PORT = '3001' diff --git a/jenkins-vars.yml b/jenkins-vars.yml index b805548..2258903 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -16,8 +16,8 @@ repo_vars: - DOCKERHUB_IMAGE = 'linuxserver/chrome' - DEV_DOCKERHUB_IMAGE = 'lsiodev/chrome' - PR_DOCKERHUB_IMAGE = 'lspipepr/chrome' - - DIST_IMAGE = 'ubuntu' - - MULTIARCH = 'false' + - DIST_IMAGE = 'debian' + - MULTIARCH = 'true' - CI = 'true' - CI_WEB = 'true' - CI_PORT = '3001'