From b8c1f711bc9896ba45b47d69d5e76e2fa719cb05 Mon Sep 17 00:00:00 2001 From: Ableytner Date: Mon, 12 Oct 2026 19:14:54 +0200 Subject: [PATCH 01/14] Add optional RUNNER_ARGS env variable --- docker-compose.yaml | 2 ++ linux/scripts/entrypoint.sh | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 25b673b..83fdb39 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -10,6 +10,8 @@ services: TOKEN: ${TOKEN} # These are in addition to self-hosted,Linux, # EXTRA_LABELS: docker,nonroot,example + # You can add additional args that are passed to the runner binary + # RUNNER_ARGS: --ephemeral deploy: mode: replicated replicas: 2 diff --git a/linux/scripts/entrypoint.sh b/linux/scripts/entrypoint.sh index caa7770..d44111b 100644 --- a/linux/scripts/entrypoint.sh +++ b/linux/scripts/entrypoint.sh @@ -61,7 +61,8 @@ rm token_resp.txt --name "${RUNNER_NAME:-"runner-ubuntu"}-${HOSTNAME}" \ --unattended \ --disableupdate \ - --labels "${EXTRA_LABELS:-}" + --labels "${EXTRA_LABELS:-}" \ + "${RUNNER_ARGS:-}" cleanup() { echo "Removing runner..." From 314b863d89394e47b3a99e9eab84f8c4d876d74f Mon Sep 17 00:00:00 2001 From: Ableytner Date: Mon, 12 Oct 2026 22:24:03 +0200 Subject: [PATCH 02/14] Move runner home dir to make it Github ARC compatible --- linux/Dockerfile | 12 +++++++----- linux/scripts/entrypoint.sh | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/linux/Dockerfile b/linux/Dockerfile index 5377b80..b9b3b7a 100644 --- a/linux/Dockerfile +++ b/linux/Dockerfile @@ -14,7 +14,7 @@ ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-get install -y curl jq sudo \ - && useradd -m runner \ + && useradd -m -G 0 runner \ && usermod -aG sudo runner \ && echo '%sudo ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \ && mkdir /opt/hostedtoolcache \ @@ -22,12 +22,12 @@ RUN apt-get update \ # install github actions runner RUN INSTRUCTION_SET="$(arch | sed s/aarch64/arm64/ | sed s/x86_64/x64/)" \ - && mkdir -p /home/runner/actions-runner \ - && curl -L https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-${INSTRUCTION_SET}-${RUNNER_VERSION}.tar.gz -o /home/runner/actions-runner/actions.tar.gz \ - && cd /home/runner/actions-runner \ + && mkdir -p /home/runner \ + && curl -L https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-${INSTRUCTION_SET}-${RUNNER_VERSION}.tar.gz -o /home/runner/actions.tar.gz \ + && cd /home/runner \ && tar -xzf actions.tar.gz \ && rm actions.tar.gz \ - && chown -R runner /home/runner/actions-runner \ + && chown -R runner /home/runner \ && ./bin/installdependencies.sh # install simple apt packages @@ -85,4 +85,6 @@ COPY --chmod=755 scripts/* / # switch to the runner user USER runner +WORKDIR /home/runner + ENTRYPOINT ["/entrypoint.sh"] diff --git a/linux/scripts/entrypoint.sh b/linux/scripts/entrypoint.sh index d44111b..c5dd719 100644 --- a/linux/scripts/entrypoint.sh +++ b/linux/scripts/entrypoint.sh @@ -34,7 +34,7 @@ fi echo "Registering runner..." -cd /home/runner/actions-runner +cd /home/runner if [[ -v REPO ]]; then REQ_TOKEN_URL=https://api.github.com/repos/${REPO}/actions/runners/registration-token From 69eb08c886856bd3be855558c3ce9763587e7b47 Mon Sep 17 00:00:00 2001 From: Ableytner Date: Mon, 12 Oct 2026 22:51:05 +0200 Subject: [PATCH 03/14] Add documentation for ARC usage --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index a908047..5db69d9 100644 --- a/README.md +++ b/README.md @@ -75,3 +75,21 @@ To stop the containers: ```bash docker compose down ``` + +### Github ARC + +This image can also be used with Github Actions Runner Controller (ARC). + +To use it, modify the `values.yaml` during the ScaleSet installation: +```yaml +template: + spec: + runtimeClassName: sysbox-runc + hostUsers: false + containers: + - name: runner + image: "ghcr.io/ableytner/docker-github-actions-runner:dev-ubuntu" + imagePullPolicy: Always + command: + - /home/runner/run.sh +``` From 7968cf5def8982846879ff740f5cb1785b95c137 Mon Sep 17 00:00:00 2001 From: Ableytner Date: Mon, 12 Oct 2026 22:56:48 +0200 Subject: [PATCH 04/14] Add dedicated ARC entrypoint --- README.md | 2 +- linux/scripts/entrypoint-arc.sh | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 linux/scripts/entrypoint-arc.sh diff --git a/README.md b/README.md index 5db69d9..f779ad4 100644 --- a/README.md +++ b/README.md @@ -91,5 +91,5 @@ template: image: "ghcr.io/ableytner/docker-github-actions-runner:dev-ubuntu" imagePullPolicy: Always command: - - /home/runner/run.sh + - /entrypoint-arc.sh ``` diff --git a/linux/scripts/entrypoint-arc.sh b/linux/scripts/entrypoint-arc.sh new file mode 100644 index 0000000..e04195c --- /dev/null +++ b/linux/scripts/entrypoint-arc.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +set -o nounset + +# [SETUP] + +# start docker +echo "Starting docker..." +sudo service docker start > /dev/null +sleep 5 +if [[ "$(service docker status)" == *"Docker is running"* ]]; then + echo "Done!" +else + echo "Docker didn't start, status is:" + service docker status + exit 1 +fi + +# [START] + +/home/runner/run.sh From 68651bee9ead2503562ff0839dd1a1f16145986f Mon Sep 17 00:00:00 2001 From: Ableytner Date: Mon, 12 Oct 2026 23:42:56 +0200 Subject: [PATCH 05/14] Add debug print to investigate CI failure --- linux/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/linux/Dockerfile b/linux/Dockerfile index b9b3b7a..d3f1915 100644 --- a/linux/Dockerfile +++ b/linux/Dockerfile @@ -21,9 +21,10 @@ RUN apt-get update \ && chmod 777 /opt/hostedtoolcache # install github actions runner -RUN INSTRUCTION_SET="$(arch | sed s/aarch64/arm64/ | sed s/x86_64/x64/)" \ +RUN ARCH="$(arch | sed s/aarch64/arm64/ | sed s/x86_64/x64/)" \ && mkdir -p /home/runner \ - && curl -L https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-${INSTRUCTION_SET}-${RUNNER_VERSION}.tar.gz -o /home/runner/actions.tar.gz \ + && echo "requesting https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-${ARCH}-${RUNNER_VERSION}.tar.gz" \ + && curl -L https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-${ARCH}-${RUNNER_VERSION}.tar.gz -o /home/runner/actions.tar.gz \ && cd /home/runner \ && tar -xzf actions.tar.gz \ && rm actions.tar.gz \ From efc697d072b35a450f080e8c146bb04f8b1b741f Mon Sep 17 00:00:00 2001 From: Ableytner Date: Mon, 12 Oct 2026 23:52:03 +0200 Subject: [PATCH 06/14] Make curl call more explicit --- linux/Dockerfile | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/linux/Dockerfile b/linux/Dockerfile index d3f1915..425d3c5 100644 --- a/linux/Dockerfile +++ b/linux/Dockerfile @@ -23,8 +23,19 @@ RUN apt-get update \ # install github actions runner RUN ARCH="$(arch | sed s/aarch64/arm64/ | sed s/x86_64/x64/)" \ && mkdir -p /home/runner \ - && echo "requesting https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-${ARCH}-${RUNNER_VERSION}.tar.gz" \ - && curl -L https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-${ARCH}-${RUNNER_VERSION}.tar.gz -o /home/runner/actions.tar.gz \ + && RUNNER_URL="https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-${ARCH}-${RUNNER_VERSION}.tar.gz" \ + && echo "Downloading ${RUNNER_URL}" \ + && curl \ + --fail \ + --show-error \ + --location \ + --retry 5 \ + --retry-all-errors \ + --retry-delay 2 \ + --connect-timeout 20 \ + --max-time 600 \ + --output /home/runner/actions.tar.gz \ + "${RUNNER_URL}" \ && cd /home/runner \ && tar -xzf actions.tar.gz \ && rm actions.tar.gz \ From 8990f87637551dc0f11b94b7628012b0fe0d2d96 Mon Sep 17 00:00:00 2001 From: Ableytner Date: Tue, 13 Oct 2026 00:06:24 +0200 Subject: [PATCH 07/14] Add more debug prints --- .github/workflows/build-push-linux.yaml | 9 +++++++++ linux/Dockerfile | 14 +------------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-push-linux.yaml b/.github/workflows/build-push-linux.yaml index 2faf729..2338a0b 100644 --- a/.github/workflows/build-push-linux.yaml +++ b/.github/workflows/build-push-linux.yaml @@ -47,6 +47,15 @@ jobs: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} + - name: (Debug) test ip configuration + run: | + docker network inspect bridge + - name: (Debug) test archive download + run: | + docker run --rm curlimages/curl:latest \ + -v --connect-timeout 20 \ + -o /dev/null \ + 'https://github.com/actions/runner/releases/download/v2.336.0/actions-runner-linux-x64-2.336.0.tar.gz' - name: Build and push uses: docker/build-push-action@v6 with: diff --git a/linux/Dockerfile b/linux/Dockerfile index 425d3c5..544d3fb 100644 --- a/linux/Dockerfile +++ b/linux/Dockerfile @@ -23,19 +23,7 @@ RUN apt-get update \ # install github actions runner RUN ARCH="$(arch | sed s/aarch64/arm64/ | sed s/x86_64/x64/)" \ && mkdir -p /home/runner \ - && RUNNER_URL="https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-${ARCH}-${RUNNER_VERSION}.tar.gz" \ - && echo "Downloading ${RUNNER_URL}" \ - && curl \ - --fail \ - --show-error \ - --location \ - --retry 5 \ - --retry-all-errors \ - --retry-delay 2 \ - --connect-timeout 20 \ - --max-time 600 \ - --output /home/runner/actions.tar.gz \ - "${RUNNER_URL}" \ + && curl -L https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-${ARCH}-${RUNNER_VERSION}.tar.gz -o /home/runner/actions.tar.gz \ && cd /home/runner \ && tar -xzf actions.tar.gz \ && rm actions.tar.gz \ From f9fb27005452499441dd8c949f388dd0f7d1f711 Mon Sep 17 00:00:00 2001 From: Ableytner Date: Tue, 13 Oct 2026 00:11:07 +0200 Subject: [PATCH 08/14] Test download with network mode host --- .github/workflows/build-push-linux.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/build-push-linux.yaml b/.github/workflows/build-push-linux.yaml index 2338a0b..21b3159 100644 --- a/.github/workflows/build-push-linux.yaml +++ b/.github/workflows/build-push-linux.yaml @@ -47,12 +47,9 @@ jobs: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - - name: (Debug) test ip configuration - run: | - docker network inspect bridge - name: (Debug) test archive download run: | - docker run --rm curlimages/curl:latest \ + docker run --rm --network host curlimages/curl:latest \ -v --connect-timeout 20 \ -o /dev/null \ 'https://github.com/actions/runner/releases/download/v2.336.0/actions-runner-linux-x64-2.336.0.tar.gz' From 74f9fbcac493925cdcc1283e297f8cb84e1783df Mon Sep 17 00:00:00 2001 From: Ableytner Date: Tue, 13 Oct 2026 00:16:24 +0200 Subject: [PATCH 09/14] Add debug network setup step --- .github/workflows/build-push-linux.yaml | 30 +++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-push-linux.yaml b/.github/workflows/build-push-linux.yaml index 21b3159..2d18ba5 100644 --- a/.github/workflows/build-push-linux.yaml +++ b/.github/workflows/build-push-linux.yaml @@ -47,12 +47,34 @@ jobs: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - - name: (Debug) test archive download + - name: (Debug) test network config run: | + set +e + + URL="https://github.com/actions/runner/releases/download/v2.336.0/actions-runner-linux-x64-2.336.0.tar.gz" + + echo "=== A: ARC runner network ===" + curl -4 -sS -L -o /dev/null \ + --connect-timeout 10 --max-time 60 \ + -w 'HTTP=%{http_code} connect=%{time_connect}s TLS=%{time_appconnect}s total=%{time_total}s\n' \ + "$URL" + echo "exit=$?" + + echo "=== B: nested Docker bridge ===" + docker run --rm --network bridge curlimages/curl:latest \ + -4 -sS -L -o /dev/null \ + --connect-timeout 10 --max-time 60 \ + -w 'HTTP=%{http_code} connect=%{time_connect}s TLS=%{time_appconnect}s total=%{time_total}s\n' \ + "$URL" + echo "exit=$?" + + echo "=== C: nested Docker host network ===" docker run --rm --network host curlimages/curl:latest \ - -v --connect-timeout 20 \ - -o /dev/null \ - 'https://github.com/actions/runner/releases/download/v2.336.0/actions-runner-linux-x64-2.336.0.tar.gz' + -4 -sS -L -o /dev/null \ + --connect-timeout 10 --max-time 60 \ + -w 'HTTP=%{http_code} connect=%{time_connect}s TLS=%{time_appconnect}s total=%{time_total}s\n' \ + "$URL" + echo "exit=$?" - name: Build and push uses: docker/build-push-action@v6 with: From 146ddcabc0efce318e6ea8549559d7498ef3c9a0 Mon Sep 17 00:00:00 2001 From: Ableytner Date: Tue, 13 Oct 2026 00:20:29 +0200 Subject: [PATCH 10/14] More network debugging --- .github/workflows/build-push-linux.yaml | 43 +++++++++++++------------ 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build-push-linux.yaml b/.github/workflows/build-push-linux.yaml index 2d18ba5..a11c0ad 100644 --- a/.github/workflows/build-push-linux.yaml +++ b/.github/workflows/build-push-linux.yaml @@ -51,30 +51,31 @@ jobs: run: | set +e - URL="https://github.com/actions/runner/releases/download/v2.336.0/actions-runner-linux-x64-2.336.0.tar.gz" + echo "=== Interfaces ===" + ip -br addr - echo "=== A: ARC runner network ===" - curl -4 -sS -L -o /dev/null \ - --connect-timeout 10 --max-time 60 \ - -w 'HTTP=%{http_code} connect=%{time_connect}s TLS=%{time_appconnect}s total=%{time_total}s\n' \ - "$URL" - echo "exit=$?" + echo "=== IPv4 routes ===" + ip route - echo "=== B: nested Docker bridge ===" - docker run --rm --network bridge curlimages/curl:latest \ - -4 -sS -L -o /dev/null \ - --connect-timeout 10 --max-time 60 \ - -w 'HTTP=%{http_code} connect=%{time_connect}s TLS=%{time_appconnect}s total=%{time_total}s\n' \ - "$URL" - echo "exit=$?" + echo "=== Default route ===" + ip route show default - echo "=== C: nested Docker host network ===" - docker run --rm --network host curlimages/curl:latest \ - -4 -sS -L -o /dev/null \ - --connect-timeout 10 --max-time 60 \ - -w 'HTTP=%{http_code} connect=%{time_connect}s TLS=%{time_appconnect}s total=%{time_total}s\n' \ - "$URL" - echo "exit=$?" + echo "=== IPv4 forwarding ===" + cat /proc/sys/net/ipv4/ip_forward + + echo "=== NAT table ===" + iptables -t nat -nvL + + echo "=== FORWARD chain ===" + iptables -nvL FORWARD + + echo "=== Docker bridge details ===" + docker network inspect bridge + + echo "=== Docker daemon network settings ===" + docker info + + exit 1 - name: Build and push uses: docker/build-push-action@v6 with: From b07673f7825b403b645ef411fcade11a85aca8e3 Mon Sep 17 00:00:00 2001 From: Ableytner Date: Tue, 13 Oct 2026 00:23:55 +0200 Subject: [PATCH 11/14] Even more --- .github/workflows/build-push-linux.yaml | 46 ++++++++++++------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/.github/workflows/build-push-linux.yaml b/.github/workflows/build-push-linux.yaml index a11c0ad..7106ef5 100644 --- a/.github/workflows/build-push-linux.yaml +++ b/.github/workflows/build-push-linux.yaml @@ -49,33 +49,33 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: (Debug) test network config run: | - set +e + echo "=== Nested bridge: DNS and TCP/TLS ===" + docker run --rm curlimages/curl:latest \ + -4 -v -L \ + --connect-timeout 5 \ + --max-time 15 \ + -o /dev/null \ + -w '\nHTTP=%{http_code} remote_ip=%{remote_ip} connect=%{time_connect} tls=%{time_appconnect}\n' \ + https://github.com/ - echo "=== Interfaces ===" - ip -br addr + echo "=== Nested bridge: direct TCP port check ===" + docker run --rm --entrypoint sh curlimages/curl:latest -c ' + if command -v nc >/dev/null 2>&1; then + nc -vz -w 5 github.com 443 + else + echo "nc unavailable; use the curl trace above" + fi + ' - echo "=== IPv4 routes ===" - ip route + echo "=== Docker daemon configuration ===" + cat /etc/docker/daemon.json 2>/dev/null || true - echo "=== Default route ===" - ip route show default + echo "=== Docker networks ===" + docker network ls - echo "=== IPv4 forwarding ===" - cat /proc/sys/net/ipv4/ip_forward - - echo "=== NAT table ===" - iptables -t nat -nvL - - echo "=== FORWARD chain ===" - iptables -nvL FORWARD - - echo "=== Docker bridge details ===" - docker network inspect bridge - - echo "=== Docker daemon network settings ===" - docker info - - exit 1 + echo "=== Buildx builders ===" + docker buildx ls + docker buildx inspect - name: Build and push uses: docker/build-push-action@v6 with: From cda7bb4b8ec76108142236e7a07e30bc5bffe878 Mon Sep 17 00:00:00 2001 From: Ableytner Date: Tue, 13 Oct 2026 00:32:04 +0200 Subject: [PATCH 12/14] Run infinite retry loop for packet tracing --- .github/workflows/build-push-linux.yaml | 37 +++++++------------------ 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/.github/workflows/build-push-linux.yaml b/.github/workflows/build-push-linux.yaml index 7106ef5..8858668 100644 --- a/.github/workflows/build-push-linux.yaml +++ b/.github/workflows/build-push-linux.yaml @@ -49,33 +49,16 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: (Debug) test network config run: | - echo "=== Nested bridge: DNS and TCP/TLS ===" - docker run --rm curlimages/curl:latest \ - -4 -v -L \ - --connect-timeout 5 \ - --max-time 15 \ - -o /dev/null \ - -w '\nHTTP=%{http_code} remote_ip=%{remote_ip} connect=%{time_connect} tls=%{time_appconnect}\n' \ - https://github.com/ - - echo "=== Nested bridge: direct TCP port check ===" - docker run --rm --entrypoint sh curlimages/curl:latest -c ' - if command -v nc >/dev/null 2>&1; then - nc -vz -w 5 github.com 443 - else - echo "nc unavailable; use the curl trace above" - fi - ' - - echo "=== Docker daemon configuration ===" - cat /etc/docker/daemon.json 2>/dev/null || true - - echo "=== Docker networks ===" - docker network ls - - echo "=== Buildx builders ===" - docker buildx ls - docker buildx inspect + while true; do + sleep 10 + docker run --rm curlimages/curl:latest \ + -4 -v -L \ + --connect-timeout 5 \ + --max-time 15 \ + -o /dev/null \ + -w '\nHTTP=%{http_code} remote_ip=%{remote_ip} connect=%{time_connect} tls=%{time_appconnect}\n' \ + https://github.com/ + done - name: Build and push uses: docker/build-push-action@v6 with: From 5042cf39c24d724b6d9868f1e350f5f300ecfcd6 Mon Sep 17 00:00:00 2001 From: Ableytner Date: Tue, 13 Oct 2026 00:35:02 +0200 Subject: [PATCH 13/14] Don't crash if docker command fails --- .github/workflows/build-push-linux.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-push-linux.yaml b/.github/workflows/build-push-linux.yaml index 8858668..86326ac 100644 --- a/.github/workflows/build-push-linux.yaml +++ b/.github/workflows/build-push-linux.yaml @@ -57,7 +57,7 @@ jobs: --max-time 15 \ -o /dev/null \ -w '\nHTTP=%{http_code} remote_ip=%{remote_ip} connect=%{time_connect} tls=%{time_appconnect}\n' \ - https://github.com/ + https://github.com/ || true done - name: Build and push uses: docker/build-push-action@v6 From e97e9ae06ef88b4d209f00320f471bccab2c1003 Mon Sep 17 00:00:00 2001 From: Ableytner Date: Tue, 13 Oct 2026 01:26:46 +0200 Subject: [PATCH 14/14] Remove debug task --- .github/workflows/build-push-linux.yaml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/workflows/build-push-linux.yaml b/.github/workflows/build-push-linux.yaml index 86326ac..2faf729 100644 --- a/.github/workflows/build-push-linux.yaml +++ b/.github/workflows/build-push-linux.yaml @@ -47,18 +47,6 @@ jobs: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - - name: (Debug) test network config - run: | - while true; do - sleep 10 - docker run --rm curlimages/curl:latest \ - -4 -v -L \ - --connect-timeout 5 \ - --max-time 15 \ - -o /dev/null \ - -w '\nHTTP=%{http_code} remote_ip=%{remote_ip} connect=%{time_connect} tls=%{time_appconnect}\n' \ - https://github.com/ || true - done - name: Build and push uses: docker/build-push-action@v6 with: