Skip to content

Buildx schduling on non-preffered builders #4132

Open

Description

@hardillb

Contributing guidelines

I've found a bug and checked that ...

  • ... the documentation does not mention anything about my problem
  • ... there are no open or closed issues that are related to my problem

Description

I have a Git Hub Action that builds a collection of NodeJS containers. The Action creates a buildx config that includes 3 builder machines, the fist is the GitHub Host that is running on AMD64, the other 2 are remote Arm64 machines (one Pi 4 ssh port 2023 and one Pi 5 ssh port 2022) that are configured to build the 32bit container on the Pi 4 and 64bit containers on the Pi 5 using the following respective platforms options. (This split is not just about load distribution, but we also had problems with building 32bit Arm images on the Pi 5 in the past)

  • platforms: linux/arm/v6, linux/arm/v7
  • platforms: linux/arm64

This is configured using the docker/setup-buildx-action GHA

        name: Setup Docker buildx
        uses: docker/setup-buildx-action@v4.4.1
        with:
          append: |
            - endpoint: ssh://nr@${{ secrets.SSH_REMOTE_HOST }}:2023
              platforms: linux/arm/v6,linux/arm/v7
            - endpoint: ssh://nr@${{ secrets.SSH_REMOTE_HOST }}:2022
              platforms: linux/arm64

The output of this setup stage clearly shows the preferences are configured, but also shows that both Pi machines support all 3 linux/arm flavours

    "nodes": [
      {
        "name": "builder-d4b6c41b-2641-479f-a91e-a8bf41cf5dba0",
        "endpoint": "unix:///var/run/docker.sock",
        "status": "running",
        "buildkitd-flags": "--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host",
        "buildkit": "v0.33.1",
        "platforms": "linux/amd64,linux/amd64/v2,linux/amd64/v3,linux/amd64/v4,linux/386",
        "features": {
          "Automatically load images to the Docker Engine image store": true,
          "Cache export": true,
          "Direct push": true,
          "Docker exporter": true,
          "Multi-platform build": true,
          "OCI exporter": true
        },
...
      {
        "name": "builder-d4b6c41b-2641-479f-a91e-a8bf41cf5dba1",
        "endpoint": "ssh://nr@***:2023",
        "status": "running",
        "buildkitd-flags": "--allow-insecure-entitlement=network.host",
        "buildkit": "v0.33.1",
        "platforms": "linux/arm/v6,linux/arm/v7",
        "features": {
          "Automatically load images to the Docker Engine image store": true,
          "Cache export": true,
          "Direct push": true,
          "Docker exporter": true,
          "Multi-platform build": true,
          "OCI exporter": true
        },
...
      {
        "name": "builder-d4b6c41b-2641-479f-a91e-a8bf41cf5dba2",
        "endpoint": "ssh://nr@***:2022",
        "status": "running",
        "buildkitd-flags": "--allow-insecure-entitlement=network.host",
        "buildkit": "v0.33.1",
        "platforms": "linux/arm64",
        "features": {
          "Automatically load images to the Docker Engine image store": true,
          "Cache export": true,
          "Direct push": true,
          "Docker exporter": true,
          "Multi-platform build": true,
          "OCI exporter": true
        },
...

When the Action runs to build a multi arch container having been passed platforms=linux/amd64,linux/arm/v7,linux/arm64 both the arm/v7 and the arm64 container are build on the Pi 4 and nothing is scheduled to build on the Pi5.

Expected behaviour

I expect that all 3 builder machines to be untilized to match the configured supported platforms and the linux/arm64 should be built on the correct machine.

Actual behaviour

Both the linux/arm/v7 and the linux/arm64 container are build on the machine that is labelled as linux/arm/v6,linux/arm/v7

Buildx version

github.com/docker/buildx v0.37.2 2d379c0

Docker info

/usr/bin/docker version
  Client: Docker Engine - Community
   Version:           28.0.4
   API version:       1.48
   Go version:        go1.23.7
   Git commit:        b8034c0
   Built:             Tue Mar 25 15:07:16 2025
   OS/Arch:           linux/amd64
   Context:           default
  
  Server: Docker Engine - Community
   Engine:
    Version:          28.0.4
    API version:      1.48 (minimum version 1.24)
    Go version:       go1.23.7
    Git commit:       6430e49
    Built:            Tue Mar 25 15:07:16 2025
    OS/Arch:          linux/amd64
    Experimental:     false
   containerd:
    Version:          v2.3.6
    GitCommit:        ee2735368117d2eb259779949d5e75cdafec9761
   runc:
    Version:          1.5.1
    GitCommit:        v1.5.1-0-g8f2685a4
   docker-init:
    Version:          0.19.0
    GitCommit:        de40ad0
  /usr/bin/docker info
  Client: Docker Engine - Community
   Version:    28.0.4
   Context:    default
   Debug Mode: false
   Plugins:
    buildx: Docker Buildx (Docker Inc.)
      Version:  v0.37.2
      Path:     /usr/libexec/docker/cli-plugins/docker-buildx
    compose: Docker Compose (Docker Inc.)
      Version:  v2.38.2
      Path:     /usr/libexec/docker/cli-plugins/docker-compose
  
  Server:
   Containers: 0
    Running: 0
    Paused: 0
    Stopped: 0
   Images: 6
   Server Version: 28.0.4
   Storage Driver: overlay2
    Backing Filesystem: extfs
    Supports d_type: true
    Using metacopy: false
    Native Overlay Diff: false
    userxattr: false
   Logging Driver: json-file
   Cgroup Driver: systemd
   Cgroup Version: 2
   Plugins:
    Volume: local
    Network: bridge host ipvlan macvlan null overlay
    Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
   Swarm: inactive
   Runtimes: io.containerd.runc.v2 runc
   Default Runtime: runc
   Init Binary: docker-init
   containerd version: ee2735368117d2eb259779949d5e75cdafec9761
   runc version: v1.5.1-0-g8f2685a4
   init version: de40ad0
   Security Options:
    apparmor
    seccomp
     Profile: builtin
    cgroupns
   Kernel Version: 6.17.0-1022-azure
   Operating System: Ubuntu 24.04.5 LTS
   OSType: linux
   Architecture: x86_64
   CPUs: 4
   Total Memory: 15.61GiB
   Name: runnervmmprz5
   ID: 07f0e779-c305-4162-b8ec-c48c30f52fbe
   Docker Root Dir: /var/lib/docker
   Debug Mode: false
   Username: githubactions
   Experimental: false
   Insecure Registries:
    ::1/128
    127.0.0.0/8
   Live Restore Enabled: false

Builders list

{
    "nodes": [
      {
        "name": "builder-d4b6c41b-2641-479f-a91e-a8bf41cf5dba0",
        "endpoint": "unix:///var/run/docker.sock",
        "status": "running",
        "buildkitd-flags": "--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host",
        "buildkit": "v0.33.1",
        "platforms": "linux/amd64,linux/amd64/v2,linux/amd64/v3,linux/amd64/v4,linux/386",
        "features": {
          "Automatically load images to the Docker Engine image store": true,
          "Cache export": true,
          "Direct push": true,
          "Docker exporter": true,
          "Multi-platform build": true,
          "OCI exporter": true
        },
        "labels": {
          "org.mobyproject.buildkit.worker.executor": "oci",
          "org.mobyproject.buildkit.worker.hostname": "de7a4205b934",
          "org.mobyproject.buildkit.worker.network": "host",
          "org.mobyproject.buildkit.worker.oci.process-mode": "sandbox",
          "org.mobyproject.buildkit.worker.selinux.enabled": "false",
          "org.mobyproject.buildkit.worker.snapshotter": "overlayfs"
        },
        "gcPolicy": [
          {
            "all": false,
            "filter": [
              "type==source.local type==exec.cachemount type==source.git.checkout"
            ],
            "keepDuration": "48h0m0s",
            "maxUsedSpace": "488.3MiB"
          },
          {
            "all": false,
            "keepDuration": "1440h0m0s",
            "reservedSpace": "9.313GiB",
            "maxUsedSpace": "93.13GiB",
            "minFreeSpace": "27.01GiB"
          },
          {
            "all": false,
            "reservedSpace": "9.313GiB",
            "maxUsedSpace": "93.13GiB",
            "minFreeSpace": "27.01GiB"
          },
          {
            "all": true,
            "reservedSpace": "9.313GiB",
            "maxUsedSpace": "93.13GiB",
            "minFreeSpace": "27.01GiB"
          }
        ]
      },
      {
        "name": "builder-d4b6c41b-2641-479f-a91e-a8bf41cf5dba1",
        "endpoint": "ssh://nr@***:2023",
        "status": "running",
        "buildkitd-flags": "--allow-insecure-entitlement=network.host",
        "buildkit": "v0.33.1",
        "platforms": "linux/arm/v6,linux/arm/v7",
        "features": {
          "Automatically load images to the Docker Engine image store": true,
          "Cache export": true,
          "Direct push": true,
          "Docker exporter": true,
          "Multi-platform build": true,
          "OCI exporter": true
        },
        "labels": {
          "org.mobyproject.buildkit.worker.executor": "oci",
          "org.mobyproject.buildkit.worker.hostname": "f11e2d5c33f0",
          "org.mobyproject.buildkit.worker.network": "host",
          "org.mobyproject.buildkit.worker.oci.process-mode": "sandbox",
          "org.mobyproject.buildkit.worker.selinux.enabled": "false",
          "org.mobyproject.buildkit.worker.snapshotter": "overlayfs"
        },
        "gcPolicy": [
          {
            "all": false,
            "filter": [
              "type==source.local type==exec.cachemount type==source.git.checkout"
            ],
            "keepDuration": "48h0m0s",
            "maxUsedSpace": "488.3MiB"
          },
          {
            "all": false,
            "keepDuration": "1440h0m0s",
            "reservedSpace": "2.794GiB",
            "maxUsedSpace": "21.42GiB",
            "minFreeSpace": "5.588GiB"
          },
          {
            "all": false,
            "reservedSpace": "2.794GiB",
            "maxUsedSpace": "21.42GiB",
            "minFreeSpace": "5.588GiB"
          },
          {
            "all": true,
            "reservedSpace": "2.794GiB",
            "maxUsedSpace": "21.42GiB",
            "minFreeSpace": "5.588GiB"
          }
        ]
      },
      {
        "name": "builder-d4b6c41b-2641-479f-a91e-a8bf41cf5dba2",
        "endpoint": "ssh://nr@***:2022",
        "status": "running",
        "buildkitd-flags": "--allow-insecure-entitlement=network.host",
        "buildkit": "v0.33.1",
        "platforms": "linux/arm64",
        "features": {
          "Automatically load images to the Docker Engine image store": true,
          "Cache export": true,
          "Direct push": true,
          "Docker exporter": true,
          "Multi-platform build": true,
          "OCI exporter": true
        },
        "labels": {
          "org.mobyproject.buildkit.worker.executor": "oci",
          "org.mobyproject.buildkit.worker.hostname": "f9dd24659160",
          "org.mobyproject.buildkit.worker.network": "host",
          "org.mobyproject.buildkit.worker.oci.process-mode": "sandbox",
          "org.mobyproject.buildkit.worker.selinux.enabled": "false",
          "org.mobyproject.buildkit.worker.snapshotter": "overlayfs"
        },
        "gcPolicy": [
          {
            "all": false,
            "filter": [
              "type==source.local type==exec.cachemount type==source.git.checkout"
            ],
            "keepDuration": "48h0m0s",
            "maxUsedSpace": "488.3MiB"
          },
          {
            "all": false,
            "keepDuration": "1440h0m0s",
            "reservedSpace": "9.313GiB",
            "maxUsedSpace": "93.13GiB",
            "minFreeSpace": "43.77GiB"
          },
          {
            "all": false,
            "reservedSpace": "9.313GiB",
            "maxUsedSpace": "93.13GiB",
            "minFreeSpace": "43.77GiB"
          },
          {
            "all": true,
            "reservedSpace": "9.313GiB",
            "maxUsedSpace": "93.13GiB",
            "minFreeSpace": "43.77GiB"
          }
        ]
      }
    ],
    "name": "builder-d4b6c41b-2641-479f-a91e-a8bf41cf5dba",
    "driver": "docker-container",
    "lastActivity": "2026-10-08T12:51:41.000Z"
  }

Configuration

Docker file can be found here:
https://github.com/node-red/node-red-docker/blob/v4.1.x/.docker/Dockerfile.alpine

buildx command:

/usr/bin/docker buildx build --build-arg NODE_VERSION=20 --build-arg BUILD_DATE=2026-10-08T12:52:05Z --build-arg BUILD_VERSION=4.1.16 --build-arg BUILD_REF= --build-arg NODE_RED_VERSION=v4.1.16 --build-arg TAG_SUFFIX= --file .docker/Dockerfile.alpine --iidfile /home/runner/work/_temp/docker-actions-toolkit-xV27sM/build-iidfile-2c2769b40e.txt --platform linux/amd64,linux/arm/v7,linux/arm64 --attest type=provenance,mode=max,builder-id=https://github.com/node-red/node-red-docker/actions/runs/37771205680 --tag nodered/node-red:4.1.16-20 --tag ghcr.io/node-red/node-red:4.1.16-20 --tag nodered/node-red:latest-20 --tag ghcr.io/node-red/node-red:latest-20 --metadata-file /home/runner/work/_temp/docker-actions-toolkit-xV27sM/build-metadata-2b2ffffc18.json --push .

Build logs

#0 building with "builder-d4b6c41b-2641-479f-a91e-a8bf41cf5dba" instance using docker-container driver

#1 [internal] load build definition from Dockerfile.alpine
#1 transferring dockerfile: 3.63kB done
#1 DONE 0.0s

#2 [linux/amd64 internal] load metadata for docker.io/library/node:20-alpine
#2 ...

#3 [auth] library/node:pull token for registry-1.docker.io
#3 DONE 0.0s

#2 [linux/amd64 internal] load metadata for docker.io/library/node:20-alpine
#2 DONE 1.0s

#4 [internal] load .dockerignore
#4 transferring context: 2B done
#4 DONE 0.0s

#5 [linux/amd64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#5 resolve docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293 done
#5 DONE 0.0s

#6 [internal] load build context
#6 transferring context: 7.89kB done
#6 DONE 0.0s

#7 [internal] load build definition from Dockerfile.alpine
#7 transferring dockerfile: 3.63kB 0.4s done
#7 DONE 1.0s

#5 [linux/amd64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#5 sha256:fff4e2c1b189bf87d63ad8bd07f7f4eb288d6f2b6a07a8bb44c60e8c075d2096 445B / 445B 0.1s done
#5 sha256:b2cbbfe903b0821005780971ddc5892edcc4ce74c5a48d82e1d2b382edac3122 1.26MB / 1.26MB 0.1s done
#5 sha256:4feea04c154301db6f4a496efa397b3db96603b1c009c797cfdde77bea8b3287 43.23MB / 43.23MB 0.5s
#5 sha256:6a0ac1617861a677b045b7ff88545213ec31c0ff08763195a70a4a5adda577bb 3.86MB / 3.86MB 0.3s done
#5 extracting sha256:6a0ac1617861a677b045b7ff88545213ec31c0ff08763195a70a4a5adda577bb
#5 extracting sha256:6a0ac1617861a677b045b7ff88545213ec31c0ff08763195a70a4a5adda577bb 0.3s done
#5 sha256:4feea04c154301db6f4a496efa397b3db96603b1c009c797cfdde77bea8b3287 43.23MB / 43.23MB 0.8s done
#5 ...

#8 [auth] library/node:pull token for registry-1.docker.io
#8 DONE 0.0s

#5 [linux/amd64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#5 extracting sha256:4feea04c154301db6f4a496efa397b3db96603b1c009c797cfdde77bea8b3287
#5 extracting sha256:4feea04c154301db6f4a496efa397b3db96603b1c009c797cfdde77bea8b3287 0.7s done
#5 DONE 1.5s

#9 [linux/arm/v7 internal] load metadata for docker.io/library/node:20-alpine
#9 ...

#5 [linux/amd64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#5 extracting sha256:b2cbbfe903b0821005780971ddc5892edcc4ce74c5a48d82e1d2b382edac3122 0.0s done
#5 extracting sha256:fff4e2c1b189bf87d63ad8bd07f7f4eb288d6f2b6a07a8bb44c60e8c075d2096 done
#5 DONE 1.5s

#10 [linux/arm64 internal] load metadata for docker.io/library/node:20-alpine
#10 DONE 1.4s

#11 [linux/amd64 base  2/11] COPY .docker/scripts/*.sh /tmp/
#11 ...

#9 [linux/arm/v7 internal] load metadata for docker.io/library/node:20-alpine
#9 DONE 1.5s

#12 [internal] load .dockerignore
#12 transferring context: 2B 0.3s done
#12 DONE 0.3s

#11 [linux/amd64 base  2/11] COPY .docker/scripts/*.sh /tmp/
#11 DONE 0.9s

#13 [linux/amd64 base  3/11] COPY .docker/healthcheck.js /
#13 DONE 0.0s

#14 [linux/amd64 base  4/11] RUN set -ex &&     apk add --no-cache         bash         tzdata         iputils         curl         nano         git         openssl         openssh-client         ca-certificates &&     mkdir -p /usr/src/node-red /data &&     deluser --remove-home node &&     adduser -h /usr/src/node-red -D -H node-red -u 1000 &&     chown -R node-red:root /data && chmod -R g+rwX /data &&     chown -R node-red:root /usr/src/node-red && chmod -R g+rwX /usr/src/node-red
#14 0.040 + apk add --no-cache bash tzdata iputils curl nano git openssl openssh-client ca-certificates
#14 0.407 ( 1/33) Upgrading libcrypto3 (3.5.6-r0 -> 3.5.9-r0)
#14 0.463 ( 2/33) Upgrading libssl3 (3.5.6-r0 -> 3.5.9-r0)
#14 0.476 ( 3/33) Installing ncurses-terminfo-base (6.5_p20251123-r0)
#14 0.489 ( 4/33) Installing libncursesw (6.5_p20251123-r0)
#14 0.500 ( 5/33) Installing readline (8.3.1-r0)
#14 0.511 ( 6/33) Installing bash (5.3.3-r1)
#14 ...

#15 [internal] load build context
#15 DONE 0.0s

#14 [linux/amd64 base  4/11] RUN set -ex &&     apk add --no-cache         bash         tzdata         iputils         curl         nano         git         openssl         openssh-client         ca-certificates &&     mkdir -p /usr/src/node-red /data &&     deluser --remove-home node &&     adduser -h /usr/src/node-red -D -H node-red -u 1000 &&     chown -R node-red:root /data && chmod -R g+rwX /data &&     chown -R node-red:root /usr/src/node-red && chmod -R g+rwX /usr/src/node-red
#14 0.530   Executing bash-5.3.3-r1.post-install
#14 0.533 ( 7/33) Installing ca-certificates (20260909-r0)
#14 0.555 ( 8/33) Installing brotli-libs (1.2.0-r0)
#14 0.570 ( 9/33) Installing c-ares (1.34.8-r0)
#14 0.581 (10/33) Installing libunistring (1.4.1-r0)
#14 0.598 (11/33) Installing libidn2 (2.3.8-r0)
#14 0.609 (12/33) Installing nghttp2-libs (1.69.0-r0)
#14 0.619 (13/33) Installing libpsl (0.21.5-r3)
#14 0.629 (14/33) Installing zstd-libs (1.5.7-r2)
#14 0.643 (15/33) Installing libcurl (8.22.0-r0)
#14 0.657 (16/33) Installing curl (8.22.0-r0)
#14 0.668 (17/33) Installing libexpat (2.8.5-r0)
#14 0.679 (18/33) Installing pcre2 (10.49-r0)
#14 0.692 (19/33) Installing git (2.52.0-r0)
#14 0.748 (20/33) Installing git-init-template (2.52.0-r0)
#14 0.759 (21/33) Installing libcap2 (2.78-r0)
#14 0.769 (22/33) Installing iputils-arping (20250605-r0)
#14 0.779 (23/33) Installing iputils-clockdiff (20250605-r0)
#14 0.789 (24/33) Installing iputils-ping (20250605-r0)
#14 0.799 (25/33) Installing iputils-tracepath (20250605-r0)
#14 0.809 (26/33) Installing iputils (20250605-r0)
#14 0.809 (27/33) Installing nano (8.7-r0)
#14 0.821 (28/33) Installing openssh-keygen (10.2_p1-r0)
#14 0.834 (29/33) Installing libedit (20251016.3.1-r0)
#14 0.844 (30/33) Installing openssh-client-common (10.2_p1-r0)
#14 0.865 (31/33) Installing openssh-client-default (10.2_p1-r0)
#14 0.879 (32/33) Installing openssl (3.5.9-r0)
#14 0.893 (33/33) Installing tzdata (2026e-r0)
#14 0.939 Executing busybox-1.37.0-r30.trigger
#14 0.944 Executing ca-certificates-20260909-r0.trigger
#14 0.971 OK: 31.2 MiB in 49 packages
#14 1.001 + mkdir -p /usr/src/node-red /data
#14 1.002 + deluser --remove-home node
#14 1.007 + adduser -h /usr/src/node-red -D -H node-red -u 1000
#14 1.010 + chown -R node-red:root /data
#14 1.010 + chmod -R g+rwX /data
#14 1.011 + chown -R node-red:root /usr/src/node-red
#14 1.012 + chmod -R g+rwX /usr/src/node-red
#14 DONE 1.2s

#16 [linux/amd64 base  5/11] WORKDIR /usr/src/node-red
#16 DONE 0.0s

#17 [linux/amd64 base  6/11] COPY .docker/known_hosts.sh .
#17 DONE 0.0s

#15 [internal] load build context
#15 transferring context: 7.89kB 0.4s done
#15 DONE 1.4s

#18 [linux/arm64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#18 resolve docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293 0.1s done
#18 DONE 2.4s

#19 [linux/arm/v7 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#19 resolve docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293 0.1s done
#19 DONE 2.6s

#20 [linux/amd64 base  7/11] RUN ./known_hosts.sh /etc/ssh/ssh_known_hosts && rm /usr/src/node-red/known_hosts.sh
#20 DONE 4.9s

#21 [linux/amd64 base  8/11] RUN echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /etc/ssh/ssh_config
#21 DONE 0.1s

#18 [linux/arm64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#18 sha256:13e45b12880fbbfe3554ecf6b70131ace701d0c2fd3e2fb9abb842ba2494cd40 1.26MB / 1.26MB 0.8s done
#18 sha256:cd322d0ddd02673e6c24a2158d1f12f6ec7c6fd9c0dc67123244d0f0eb0f8806 443B / 443B 1.1s done
#18 sha256:bda5d7ef971f8ede8ea80002d2ac886ef6807fe32cfe46c38704a7ba0429475d 28.31MB / 43.55MB 2.4s
#18 sha256:d17f077ada118cc762df373ff803592abf2dfa3ddafaa7381e364dd27a88fca7 4.20MB / 4.20MB 1.3s done
#18 extracting sha256:d17f077ada118cc762df373ff803592abf2dfa3ddafaa7381e364dd27a88fca7
#18 ...

#22 [linux/amd64 base  9/11] COPY package.json .
#22 DONE 0.0s

#23 [linux/amd64 base 10/11] COPY flows.json /data
#23 DONE 0.0s

#24 [linux/amd64 base 11/11] COPY .docker/scripts/entrypoint.sh .
#24 DONE 0.0s

#18 [linux/arm64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#18 sha256:bda5d7ef971f8ede8ea80002d2ac886ef6807fe32cfe46c38704a7ba0429475d 31.46MB / 43.55MB 2.7s
#18 extracting sha256:d17f077ada118cc762df373ff803592abf2dfa3ddafaa7381e364dd27a88fca7 0.5s done
#18 sha256:bda5d7ef971f8ede8ea80002d2ac886ef6807fe32cfe46c38704a7ba0429475d 34.60MB / 43.55MB 3.2s
#18 sha256:bda5d7ef971f8ede8ea80002d2ac886ef6807fe32cfe46c38704a7ba0429475d 37.75MB / 43.55MB 3.6s
#18 sha256:bda5d7ef971f8ede8ea80002d2ac886ef6807fe32cfe46c38704a7ba0429475d 40.89MB / 43.55MB 3.9s
#18 sha256:bda5d7ef971f8ede8ea80002d2ac886ef6807fe32cfe46c38704a7ba0429475d 43.55MB / 43.55MB 4.4s
#18 ...

#19 [linux/arm/v7 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#19 sha256:ebe460b543520a6bfb0d3cf8dcee019390043a79552381326e7ccaf7f3b0aea4 443B / 443B 0.8s done
#19 sha256:b3a7d21784cc3e66fe10cb0325264167ea857088afb64793c85209fa9219e743 1.26MB / 1.26MB 1.1s done
#19 sha256:b5528065c59af25f567f93e4aa72c7f91dcacc83b28dca7a4d2b60ce93aff483 41.16MB / 41.16MB 7.8s
#19 sha256:c160e404c59d6d30c66a0d74bbd17337f178f5d898a9908e18c71ce3bbe28c99 3.28MB / 3.28MB 1.4s done
#19 extracting sha256:c160e404c59d6d30c66a0d74bbd17337f178f5d898a9908e18c71ce3bbe28c99
#19 ...

#18 [linux/arm64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#18 sha256:bda5d7ef971f8ede8ea80002d2ac886ef6807fe32cfe46c38704a7ba0429475d 43.55MB / 43.55MB 9.9s
#18 ...

#25 [linux/amd64 build 1/1] RUN apk add --no-cache --virtual buildtools build-base linux-headers udev python3 &&     npm install --unsafe-perm --no-update-notifier --no-audit --no-fund --only=production &&     /tmp/remove_native_gpio.sh &&     cp -R node_modules prod_node_modules
#25 0.389 ( 1/36) Installing jansson (2.14.1-r0)
#25 0.399 ( 2/36) Installing binutils (2.45.1-r0)
#25 0.478 ( 3/36) Installing libmagic (5.46-r2)
#25 0.503 ( 4/36) Installing file (5.46-r2)
#25 0.512 ( 5/36) Installing libgomp (15.2.0-r2)
#25 0.523 ( 6/36) Installing libatomic (15.2.0-r2)
#25 0.532 ( 7/36) Installing gmp (6.3.0-r4)
#25 0.544 ( 8/36) Installing isl26 (0.26-r1)
#25 0.563 ( 9/36) Installing mpfr4 (4.2.2-r0)
#25 0.576 (10/36) Installing mpc1 (1.3.1-r1)
#25 0.586 (11/36) Installing gcc (15.2.0-r2)
#25 1.320 (12/36) Installing libstdc++-dev (15.2.0-r2)
#25 1.444 (13/36) Installing musl-dev (1.2.5-r23)
#25 1.499 (14/36) Installing g++ (15.2.0-r2)
#25 1.704 (15/36) Installing make (4.4.1-r3)
#25 1.715 (16/36) Installing fortify-headers (1.1-r5)
#25 1.724 (17/36) Installing patch (2.8-r0)
#25 1.734 (18/36) Installing build-base (0.5-r3)
#25 1.734 (19/36) Installing linux-headers (6.16.12-r0)
#25 1.831 (20/36) Installing udev-init-scripts (35-r1)
#25 1.831 (21/36) Installing libeconf (0.8.3-r0)
#25 1.840 (22/36) Installing libblkid (2.41.6-r1)
#25 1.850 (23/36) Installing xz-libs (5.8.4-r0)
#25 1.861 (24/36) Installing kmod-libs (34.2-r1)
#25 1.871 (25/36) Installing eudev (3.2.14-r6)
#25 1.888 (26/36) Installing libbz2 (1.0.8-r6)
#25 1.897 (27/36) Installing libffi (3.5.2-r0)
#25 1.906 (28/36) Installing gdbm (1.26-r0)
#25 1.916 (29/36) Installing mpdecimal (4.0.1-r0)
#25 1.926 (30/36) Installing libpanelw (6.5_p20251123-r0)
#25 1.935 (31/36) Installing sqlite-libs (3.53.4-r0)
#25 1.954 (32/36) Installing python3 (3.12.15-r0)
#25 2.103 (33/36) Installing python3-pycache-pyc0 (3.12.15-r0)
#25 2.205 (34/36) Installing pyc (3.12.15-r0)
#25 2.205 (35/36) Installing python3-pyc (3.12.15-r0)
#25 2.205 (36/36) Installing buildtools (20261008.125233)
#25 2.205 Executing busybox-1.37.0-r30.trigger
#25 2.211 Executing eudev-3.2.14-r6.trigger
#25 2.216 OK: 337.1 MiB in 85 packages
#25 2.367 npm warn config only Use `--omit=dev` to omit dev dependencies from the install.
#25 ...

#18 [linux/arm64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#18 sha256:bda5d7ef971f8ede8ea80002d2ac886ef6807fe32cfe46c38704a7ba0429475d 43.55MB / 43.55MB 15.3s
#18 ...

#25 [linux/amd64 build 1/1] RUN apk add --no-cache --virtual buildtools build-base linux-headers udev python3 &&     npm install --unsafe-perm --no-update-notifier --no-audit --no-fund --only=production &&     /tmp/remove_native_gpio.sh &&     cp -R node_modules prod_node_modules
#25 13.12 
#25 13.12 added 275 packages in 11s
#25 13.14 + [[ -d /usr/src/node-red/node_modules/@node-red/nodes/core/hardware ]]
#25 13.14 + echo 'Skip removing native GPIO node'
#25 13.14 Skip removing native GPIO node
#25 DONE 15.9s

#18 [linux/arm64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#18 sha256:bda5d7ef971f8ede8ea80002d2ac886ef6807fe32cfe46c38704a7ba0429475d 43.55MB / 43.55MB 18.5s done
#18 extracting sha256:bda5d7ef971f8ede8ea80002d2ac886ef6807fe32cfe46c38704a7ba0429475d
#18 ...

#19 [linux/arm/v7 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#19 sha256:b5528065c59af25f567f93e4aa72c7f91dcacc83b28dca7a4d2b60ce93aff483 41.16MB / 41.16MB 17.0s done
#19 extracting sha256:c160e404c59d6d30c66a0d74bbd17337f178f5d898a9908e18c71ce3bbe28c99 14.7s done
#19 extracting sha256:b5528065c59af25f567f93e4aa72c7f91dcacc83b28dca7a4d2b60ce93aff483
#19 ...

#26 [linux/amd64 release 1/3] COPY --from=build /usr/src/node-red/prod_node_modules ./node_modules
#26 DONE 1.6s

#19 [linux/arm/v7 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#19 ...

#27 [linux/amd64 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#27 4.742 Installing devtools
#27 4.742 + [[ '' != *minimal ]]
#27 4.742 + echo 'Installing devtools'
#27 4.742 + apk add --no-cache --virtual devtools build-base linux-headers udev python3
#27 5.035 ( 1/36) Installing jansson (2.14.1-r0)
#27 5.038 ( 2/36) Installing binutils (2.45.1-r0)
#27 5.096 ( 3/36) Installing libmagic (5.46-r2)
#27 5.115 ( 4/36) Installing file (5.46-r2)
#27 5.117 ( 5/36) Installing libgomp (15.2.0-r2)
#27 5.122 ( 6/36) Installing libatomic (15.2.0-r2)
#27 5.124 ( 7/36) Installing gmp (6.3.0-r4)
#27 5.131 ( 8/36) Installing isl26 (0.26-r1)
#27 5.147 ( 9/36) Installing mpfr4 (4.2.2-r0)
#27 5.154 (10/36) Installing mpc1 (1.3.1-r1)
#27 5.157 (11/36) Installing gcc (15.2.0-r2)
#27 5.870 (12/36) Installing libstdc++-dev (15.2.0-r2)
#27 5.988 (13/36) Installing musl-dev (1.2.5-r23)
#27 6.035 (14/36) Installing g++ (15.2.0-r2)
#27 6.233 (15/36) Installing make (4.4.1-r3)
#27 6.237 (16/36) Installing fortify-headers (1.1-r5)
#27 6.240 (17/36) Installing patch (2.8-r0)
#27 6.243 (18/36) Installing build-base (0.5-r3)
#27 6.243 (19/36) Installing linux-headers (6.16.12-r0)
#27 6.331 (20/36) Installing udev-init-scripts (35-r1)
#27 6.331 (21/36) Installing libeconf (0.8.3-r0)
#27 6.334 (22/36) Installing libblkid (2.41.6-r1)
#27 6.339 (23/36) Installing xz-libs (5.8.4-r0)
#27 6.343 (24/36) Installing kmod-libs (34.2-r1)
#27 6.347 (25/36) Installing eudev (3.2.14-r6)
#27 6.358 (26/36) Installing libbz2 (1.0.8-r6)
#27 6.361 (27/36) Installing libffi (3.5.2-r0)
#27 6.364 (28/36) Installing gdbm (1.26-r0)
#27 6.366 (29/36) Installing mpdecimal (4.0.1-r0)
#27 6.370 (30/36) Installing libpanelw (6.5_p20251123-r0)
#27 6.372 (31/36) Installing sqlite-libs (3.53.4-r0)
#27 6.385 (32/36) Installing python3 (3.12.15-r0)
#27 6.532 (33/36) Installing python3-pycache-pyc0 (3.12.15-r0)
#27 6.622 (34/36) Installing pyc (3.12.15-r0)
#27 6.622 (35/36) Installing python3-pyc (3.12.15-r0)
#27 6.622 (36/36) Installing devtools (20261008.125255)
#27 6.622 Executing busybox-1.37.0-r30.trigger
#27 6.627 Executing eudev-3.2.14-r6.trigger
#27 6.632 OK: 337.1 MiB in 85 packages
#27 DONE 8.4s

#18 [linux/arm64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#18 ...

#28 [linux/amd64 release 3/3] RUN npm config set cache /data/.npm --global
#28 DONE 0.5s

#19 [linux/arm/v7 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#19 ...

#29 exporting to image
#29 exporting layers
#29 ...

#19 [linux/arm/v7 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#19 extracting sha256:b5528065c59af25f567f93e4aa72c7f91dcacc83b28dca7a4d2b60ce93aff483 21.1s done
#19 DONE 42.5s

#19 [linux/arm/v7 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#19 extracting sha256:b3a7d21784cc3e66fe10cb0325264167ea857088afb64793c85209fa9219e743
#19 ...

#18 [linux/arm64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#18 extracting sha256:bda5d7ef971f8ede8ea80002d2ac886ef6807fe32cfe46c38704a7ba0429475d 21.3s done
#18 DONE 42.5s

#18 [linux/arm64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#18 extracting sha256:13e45b12880fbbfe3554ecf6b70131ace701d0c2fd3e2fb9abb842ba2494cd40
#18 ...

#30 [auth] nodered/node-red:pull,push token for registry-1.docker.io
#30 DONE 0.0s

#29 exporting to image
#29 exporting layers 13.0s done
#29 exporting manifest sha256:85c7af0be29f7d777ab65c28e713f2842ddebb7b865caf04403610d9f4373326 done
#29 exporting config sha256:b9558cd6a308e5e557e4e5fe31841e72f02c9e7735d654a6d653ff2d7d48cd79 done
#29 exporting attestation manifest sha256:b413ad047e5fa1a6b215d3acc74c0d61cfc738411add3477047bc88d839e49a1 done
#29 exporting manifest list sha256:3d07fe0bfe5d3df0e88a61160017bd3569b48711f44f113ef22a3a0186e14a37 done
#29 pushing layers
#29 pushing layers 6.8s done
#29 pushing manifest for docker.io/nodered/node-red
#29 pushing manifest for docker.io/nodered/node-red 1.4s done
#29 ...

#31 [auth] node-red/node-red:pull,push token for ghcr.io
#31 DONE 0.0s

#18 [linux/arm64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#18 extracting sha256:13e45b12880fbbfe3554ecf6b70131ace701d0c2fd3e2fb9abb842ba2494cd40 11.2s done
#18 extracting sha256:cd322d0ddd02673e6c24a2158d1f12f6ec7c6fd9c0dc67123244d0f0eb0f8806
#18 ...

#19 [linux/arm/v7 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#19 extracting sha256:b3a7d21784cc3e66fe10cb0325264167ea857088afb64793c85209fa9219e743 4.8s done
#19 extracting sha256:ebe460b543520a6bfb0d3cf8dcee019390043a79552381326e7ccaf7f3b0aea4
#19 extracting sha256:ebe460b543520a6bfb0d3cf8dcee019390043a79552381326e7ccaf7f3b0aea4 10.8s done
#19 DONE 58.1s

#18 [linux/arm64 base  1/11] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
#18 extracting sha256:cd322d0ddd02673e6c24a2158d1f12f6ec7c6fd9c0dc67123244d0f0eb0f8806 4.7s done
#18 DONE 58.4s

#32 [linux/arm/v7 base  2/11] COPY .docker/scripts/*.sh /tmp/
#32 ...

#29 exporting to image
#29 pushing layers 6.6s done
#29 pushing manifest for ghcr.io/node-red/node-red 1.6s done
#29 DONE 29.4s

#33 resolving provenance for metadata file
#33 DONE 0.0s

#34 [linux/arm64 base  2/11] COPY .docker/scripts/*.sh /tmp/
#34 ...

#32 [linux/arm/v7 base  2/11] COPY .docker/scripts/*.sh /tmp/
#32 DONE 21.1s

#34 [linux/arm64 base  2/11] COPY .docker/scripts/*.sh /tmp/
#34 DONE 20.5s

#35 [linux/arm64 base  3/11] COPY .docker/healthcheck.js /
#35 ...

#36 [linux/arm/v7 base  3/11] COPY .docker/healthcheck.js /
#36 DONE 0.7s

#35 [linux/arm64 base  3/11] COPY .docker/healthcheck.js /
#35 DONE 0.8s

#37 [linux/arm64 base  4/11] RUN set -ex &&     apk add --no-cache         bash         tzdata         iputils         curl         nano         git         openssl         openssh-client         ca-certificates &&     mkdir -p /usr/src/node-red /data &&     deluser --remove-home node &&     adduser -h /usr/src/node-red -D -H node-red -u 1000 &&     chown -R node-red:root /data && chmod -R g+rwX /data &&     chown -R node-red:root /usr/src/node-red && chmod -R g+rwX /usr/src/node-red
#37 0.270 + apk add --no-cache bash tzdata iputils curl nano git openssl openssh-client ca-certificates
#37 1.919 ( 1/33) Upgrading libcrypto3 (3.5.6-r0 -> 3.5.9-r0)
#37 2.111 ( 2/33) Upgrading libssl3 (3.5.6-r0 -> 3.5.9-r0)
#37 2.148 ( 3/33) Installing ncurses-terminfo-base (6.5_p20251123-r0)
#37 2.169 ( 4/33) Installing libncursesw (6.5_p20251123-r0)
#37 2.201 ( 5/33) Installing readline (8.3.1-r0)
#37 2.224 ( 6/33) Installing bash (5.3.3-r1)
#37 2.302   Executing bash-5.3.3-r1.post-install
#37 2.313 ( 7/33) Installing ca-certificates (20260909-r0)
#37 2.363 ( 8/33) Installing brotli-libs (1.2.0-r0)
#37 2.432 ( 9/33) Installing c-ares (1.34.8-r0)
#37 2.453 (10/33) Installing libunistring (1.4.1-r0)
#37 2.520 (11/33) Installing libidn2 (2.3.8-r0)
#37 2.541 (12/33) Installing nghttp2-libs (1.69.0-r0)
#37 2.558 (13/33) Installing libpsl (0.21.5-r3)
#37 2.574 (14/33) Installing zstd-libs (1.5.7-r2)
#37 2.616 (15/33) Installing libcurl (8.22.0-r0)
#37 2.653 (16/33) Installing curl (8.22.0-r0)
#37 2.678 (17/33) Installing libexpat (2.8.5-r0)
#37 2.700 (18/33) Installing pcre2 (10.49-r0)
#37 2.749 (19/33) Installing git (2.52.0-r0)
#37 3.093 (20/33) Installing git-init-template (2.52.0-r0)
#37 3.110 (21/33) Installing libcap2 (2.78-r0)
#37 3.125 (22/33) Installing iputils-arping (20250605-r0)
#37 3.136 (23/33) Installing iputils-clockdiff (20250605-r0)
#37 3.147 (24/33) Installing iputils-ping (20250605-r0)
#37 3.160 (25/33) Installing iputils-tracepath (20250605-r0)
#37 3.176 (26/33) Installing iputils (20250605-r0)
#37 3.176 (27/33) Installing nano (8.7-r0)
#37 3.205 (28/33) Installing openssh-keygen (10.2_p1-r0)
#37 3.236 (29/33) Installing libedit (20251016.3.1-r0)
#37 3.260 (30/33) Installing openssh-client-common (10.2_p1-r0)
#37 3.347 (31/33) Installing openssh-client-default (10.2_p1-r0)
#37 3.383 (32/33) Installing openssl (3.5.9-r0)
#37 3.417 (33/33) Installing tzdata (2026e-r0)
#37 3.553 Executing busybox-1.37.0-r30.trigger
#37 3.572 Executing ca-certificates-20260909-r0.trigger
#37 3.837 OK: 34.8 MiB in 49 packages
#37 3.930 + mkdir -p /usr/src/node-red /data
#37 3.933 + deluser --remove-home node
#37 7.839 + adduser -h /usr/src/node-red -D -H node-red -u 1000
#37 ...

#38 [linux/arm/v7 base  4/11] RUN set -ex &&     apk add --no-cache         bash         tzdata         iputils         curl         nano         git         openssl         openssh-client         ca-certificates &&     mkdir -p /usr/src/node-red /data &&     deluser --remove-home node &&     adduser -h /usr/src/node-red -D -H node-red -u 1000 &&     chown -R node-red:root /data && chmod -R g+rwX /data &&     chown -R node-red:root /usr/src/node-red && chmod -R g+rwX /usr/src/node-red
#38 0.292 + apk add --no-cache bash tzdata iputils curl nano git openssl openssh-client ca-certificates
#38 1.892 ( 1/33) Upgrading libcrypto3 (3.5.6-r0 -> 3.5.9-r0)
#38 2.028 ( 2/33) Upgrading libssl3 (3.5.6-r0 -> 3.5.9-r0)
#38 2.096 ( 3/33) Installing ncurses-terminfo-base (6.5_p20251123-r0)
#38 2.127 ( 4/33) Installing libncursesw (6.5_p20251123-r0)
#38 2.153 ( 5/33) Installing readline (8.3.1-r0)
#38 2.182 ( 6/33) Installing bash (5.3.3-r1)
#38 2.241   Executing bash-5.3.3-r1.post-install
#38 2.250 ( 7/33) Installing ca-certificates (20260909-r0)
#38 2.321 ( 8/33) Installing brotli-libs (1.2.0-r0)
#38 2.363 ( 9/33) Installing c-ares (1.34.8-r0)
#38 2.381 (10/33) Installing libunistring (1.4.1-r0)
#38 2.458 (11/33) Installing libidn2 (2.3.8-r0)
#38 2.476 (12/33) Installing nghttp2-libs (1.69.0-r0)
#38 2.492 (13/33) Installing libpsl (0.21.5-r3)
#38 2.512 (14/33) Installing zstd-libs (1.5.7-r2)
#38 2.559 (15/33) Installing libcurl (8.22.0-r0)
#38 2.605 (16/33) Installing curl (8.22.0-r0)
#38 2.643 (17/33) Installing libexpat (2.8.5-r0)
#38 2.659 (18/33) Installing pcre2 (10.49-r0)
#38 2.698 (19/33) Installing git (2.52.0-r0)
#38 3.035 (20/33) Installing git-init-template (2.52.0-r0)
#38 3.050 (21/33) Installing libcap2 (2.78-r0)
#38 3.068 (22/33) Installing iputils-arping (20250605-r0)
#38 3.082 (23/33) Installing iputils-clockdiff (20250605-r0)
#38 3.093 (24/33) Installing iputils-ping (20250605-r0)
#38 3.106 (25/33) Installing iputils-tracepath (20250605-r0)
#38 3.117 (26/33) Installing iputils (20250605-r0)
#38 3.117 (27/33) Installing nano (8.7-r0)
#38 3.143 (28/33) Installing openssh-keygen (10.2_p1-r0)
#38 3.170 (29/33) Installing libedit (20251016.3.1-r0)
#38 3.187 (30/33) Installing openssh-client-common (10.2_p1-r0)
#38 3.259 (31/33) Installing openssh-client-default (10.2_p1-r0)
#38 3.297 (32/33) Installing openssl (3.5.9-r0)
#38 3.350 (33/33) Installing tzdata (2026e-r0)
#38 3.492 Executing busybox-1.37.0-r30.trigger
#38 3.508 Executing ca-certificates-20260909-r0.trigger
#38 3.619 OK: 22.8 MiB in 49 packages
#38 3.690 + mkdir -p /usr/src/node-red /data
#38 3.693 + deluser --remove-home node
#38 3.869 + adduser -h /usr/src/node-red -D -H node-red -u 1000
#38 3.903 + chown -R node-red:root /data
#38 3.909 + chmod -R g+rwX /data
#38 3.911 + chown -R node-red:root /usr/src/node-red
#38 3.914 + chmod -R g+rwX /usr/src/node-red
#38 ...

#37 [linux/arm64 base  4/11] RUN set -ex &&     apk add --no-cache         bash         tzdata         iputils         curl         nano         git         openssl         openssh-client         ca-certificates &&     mkdir -p /usr/src/node-red /data &&     deluser --remove-home node &&     adduser -h /usr/src/node-red -D -H node-red -u 1000 &&     chown -R node-red:root /data && chmod -R g+rwX /data &&     chown -R node-red:root /usr/src/node-red && chmod -R g+rwX /usr/src/node-red
#37 11.56 + chown -R node-red:root /data
#37 ...

#38 [linux/arm/v7 base  4/11] RUN set -ex &&     apk add --no-cache         bash         tzdata         iputils         curl         nano         git         openssl         openssh-client         ca-certificates &&     mkdir -p /usr/src/node-red /data &&     deluser --remove-home node &&     adduser -h /usr/src/node-red -D -H node-red -u 1000 &&     chown -R node-red:root /data && chmod -R g+rwX /data &&     chown -R node-red:root /usr/src/node-red && chmod -R g+rwX /usr/src/node-red
#38 DONE 11.7s

#37 [linux/arm64 base  4/11] RUN set -ex &&     apk add --no-cache         bash         tzdata         iputils         curl         nano         git         openssl         openssh-client         ca-certificates &&     mkdir -p /usr/src/node-red /data &&     deluser --remove-home node &&     adduser -h /usr/src/node-red -D -H node-red -u 1000 &&     chown -R node-red:root /data && chmod -R g+rwX /data &&     chown -R node-red:root /usr/src/node-red && chmod -R g+rwX /usr/src/node-red
#37 11.56 + chmod -R g+rwX /data
#37 11.57 + chown -R node-red:root /usr/src/node-red
#37 11.57 + chmod -R g+rwX /usr/src/node-red
#37 DONE 12.2s

#39 [linux/arm/v7 base  5/11] WORKDIR /usr/src/node-red
#39 DONE 1.1s

#40 [linux/arm64 base  5/11] WORKDIR /usr/src/node-red
#40 DONE 0.6s

#41 [linux/arm64 base  6/11] COPY .docker/known_hosts.sh .
#41 ...

#42 [linux/arm/v7 base  6/11] COPY .docker/known_hosts.sh .
#42 DONE 1.0s

#41 [linux/arm64 base  6/11] COPY .docker/known_hosts.sh .
#41 DONE 1.0s

#43 [linux/arm64 base  7/11] RUN ./known_hosts.sh /etc/ssh/ssh_known_hosts && rm /usr/src/node-red/known_hosts.sh
#43 ...

#44 [linux/arm/v7 base  7/11] RUN ./known_hosts.sh /etc/ssh/ssh_known_hosts && rm /usr/src/node-red/known_hosts.sh
#44 DONE 5.7s

#43 [linux/arm64 base  7/11] RUN ./known_hosts.sh /etc/ssh/ssh_known_hosts && rm /usr/src/node-red/known_hosts.sh
#43 DONE 5.8s

#45 [linux/arm64 base  8/11] RUN echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /etc/ssh/ssh_config
#45 DONE 0.3s

#46 [linux/arm/v7 base  8/11] RUN echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /etc/ssh/ssh_config
#46 DONE 0.4s

#47 [linux/arm/v7 base  9/11] COPY package.json .
#47 ...

#48 [linux/arm64 base  9/11] COPY package.json .
#48 DONE 0.2s

#47 [linux/arm/v7 base  9/11] COPY package.json .
#47 DONE 0.2s

#49 [linux/arm/v7 base 10/11] COPY flows.json /data
#49 ...

#50 [linux/arm64 base 10/11] COPY flows.json /data
#50 DONE 0.2s

#49 [linux/arm/v7 base 10/11] COPY flows.json /data
#49 DONE 0.2s

#51 [linux/arm64 base 11/11] COPY .docker/scripts/entrypoint.sh .
#51 ...

#52 [linux/arm/v7 base 11/11] COPY .docker/scripts/entrypoint.sh .
#52 DONE 1.0s

#51 [linux/arm64 base 11/11] COPY .docker/scripts/entrypoint.sh .
#51 DONE 1.0s

#53 [linux/arm64 build 1/1] RUN apk add --no-cache --virtual buildtools build-base linux-headers udev python3 &&     npm install --unsafe-perm --no-update-notifier --no-audit --no-fund --only=production &&     /tmp/remove_native_gpio.sh &&     cp -R node_modules prod_node_modules
#53 1.682 ( 1/36) Installing jansson (2.14.1-r0)
#53 1.699 ( 2/36) Installing binutils (2.45.1-r0)
#53 2.150 ( 3/36) Installing libmagic (5.46-r2)
#53 2.250 ( 4/36) Installing file (5.46-r2)
#53 2.262 ( 5/36) Installing libgomp (15.2.0-r2)
#53 2.285 ( 6/36) Installing libatomic (15.2.0-r2)
#53 2.297 ( 7/36) Installing gmp (6.3.0-r4)
#53 2.326 ( 8/36) Installing isl26 (0.26-r1)
#53 2.395 ( 9/36) Installing mpfr4 (4.2.2-r0)
#53 2.430 (10/36) Installing mpc1 (1.3.1-r1)
#53 2.446 (11/36) Installing gcc (15.2.0-r2)
#53 7.979 (12/36) Installing libstdc++-dev (15.2.0-r2)
#53 8.487 (13/36) Installing musl-dev (1.2.5-r23)
#53 8.729 (14/36) Installing g++ (15.2.0-r2)
#53 ...

#54 [linux/arm/v7 build 1/1] RUN apk add --no-cache --virtual buildtools build-base linux-headers udev python3 &&     npm install --unsafe-perm --no-update-notifier --no-audit --no-fund --only=production &&     /tmp/remove_native_gpio.sh &&     cp -R node_modules prod_node_modules
#54 2.280 ( 1/36) Installing jansson (2.14.1-r0)
#54 2.308 ( 2/36) Installing binutils (2.45.1-r0)
#54 3.162 ( 3/36) Installing libmagic (5.46-r2)
#54 3.383 ( 4/36) Installing file (5.46-r2)
#54 3.415 ( 5/36) Installing libgomp (15.2.0-r2)
#54 3.489 ( 6/36) Installing libatomic (15.2.0-r2)
#54 3.519 ( 7/36) Installing gmp (6.3.0-r4)
#54 3.604 ( 8/36) Installing isl26 (0.26-r1)
#54 3.839 ( 9/36) Installing mpfr4 (4.2.2-r0)
#54 3.902 (10/36) Installing mpc1 (1.3.1-r1)
#54 3.937 (11/36) Installing gcc (15.2.0-r2)
#54 ...

#53 [linux/arm64 build 1/1] RUN apk add --no-cache --virtual buildtools build-base linux-headers udev python3 &&     npm install --unsafe-perm --no-update-notifier --no-audit --no-fund --only=production &&     /tmp/remove_native_gpio.sh &&     cp -R node_modules prod_node_modules
#53 28.20 (15/36) Installing make (4.4.1-r3)
#53 28.24 (16/36) Installing fortify-headers (1.1-r5)
#53 28.27 (17/36) Installing patch (2.8-r0)
#53 28.29 (18/36) Installing build-base (0.5-r3)
#53 28.29 (19/36) Installing linux-headers (6.16.12-r0)
#53 29.49 (20/36) Installing udev-init-scripts (35-r1)
#53 29.49 (21/36) Installing libeconf (0.8.3-r0)
#53 29.50 (22/36) Installing libblkid (2.41.6-r1)
#53 29.52 (23/36) Installing xz-libs (5.8.4-r0)
#53 29.54 (24/36) Installing kmod-libs (34.2-r1)
#53 29.55 (25/36) Installing eudev (3.2.14-r6)
#53 29.84 (26/36) Installing libbz2 (1.0.8-r6)
#53 29.86 (27/36) Installing libffi (3.5.2-r0)
#53 29.87 (28/36) Installing gdbm (1.26-r0)
#53 29.88 (29/36) Installing mpdecimal (4.0.1-r0)
#53 29.95 (30/36) Installing libpanelw (6.5_p20251123-r0)
#53 29.96 (31/36) Installing sqlite-libs (3.53.4-r0)
#53 30.29 (32/36) Installing python3 (3.12.15-r0)
#53 ...

#54 [linux/arm/v7 build 1/1] RUN apk add --no-cache --virtual buildtools build-base linux-headers udev python3 &&     npm install --unsafe-perm --no-update-notifier --no-audit --no-fund --only=production &&     /tmp/remove_native_gpio.sh &&     cp -R node_modules prod_node_modules
#54 34.16 (12/36) Installing libstdc++-dev (15.2.0-r2)
#54 ...

#53 [linux/arm64 build 1/1] RUN apk add --no-cache --virtual buildtools build-base linux-headers udev python3 &&     npm install --unsafe-perm --no-update-notifier --no-audit --no-fund --only=production &&     /tmp/remove_native_gpio.sh &&     cp -R node_modules prod_node_modules
#53 53.51 (33/36) Installing python3-pycache-pyc0 (3.12.15-r0)
#53 55.34 (34/36) Installing pyc (3.12.15-r0)
#53 55.34 (35/36) Installing python3-pyc (3.12.15-r0)
#53 55.34 (36/36) Installing buildtools (20261008.125410)
#53 55.34 Executing busybox-1.37.0-r30.trigger
#53 55.37 Executing eudev-3.2.14-r6.trigger
#53 55.39 OK: 315.3 MiB in 85 packages
#53 55.97 npm warn config only Use `--omit=dev` to omit dev dependencies from the install.
#53 ...

#54 [linux/arm/v7 build 1/1] RUN apk add --no-cache --virtual buildtools build-base linux-headers udev python3 &&     npm install --unsafe-perm --no-update-notifier --no-audit --no-fund --only=production &&     /tmp/remove_native_gpio.sh &&     cp -R node_modules prod_node_modules
#54 53.54 (13/36) Installing musl-dev (1.2.5-r23)
#54 55.01 (14/36) Installing g++ (15.2.0-r2)
#54 58.94 (15/36) Installing make (4.4.1-r3)
#54 58.96 (16/36) Installing fortify-headers (1.1-r5)
#54 58.98 (17/36) Installing patch (2.8-r0)
#54 59.00 (18/36) Installing build-base (0.5-r3)
#54 59.00 (19/36) Installing linux-headers (6.16.12-r0)
#54 60.40 (20/36) Installing udev-init-scripts (35-r1)
#54 60.40 (21/36) Installing libeconf (0.8.3-r0)
#54 60.41 (22/36) Installing libblkid (2.41.6-r1)
#54 60.43 (23/36) Installing xz-libs (5.8.4-r0)
#54 60.45 (24/36) Installing kmod-libs (34.2-r1)
#54 60.47 (25/36) Installing eudev (3.2.14-r6)
#54 60.61 (26/36) Installing libbz2 (1.0.8-r6)
#54 60.63 (27/36) Installing libffi (3.5.2-r0)
#54 60.64 (28/36) Installing gdbm (1.26-r0)
#54 60.65 (29/36) Installing mpdecimal (4.0.1-r0)
#54 60.67 (30/36) Installing libpanelw (6.5_p20251123-r0)
#54 60.68 (31/36) Installing sqlite-libs (3.53.4-r0)
#54 60.91 (32/36) Installing python3 (3.12.15-r0)
#54 74.46 (33/36) Installing python3-pycache-pyc0 (3.12.15-r0)
#54 78.19 (34/36) Installing pyc (3.12.15-r0)
#54 78.19 (35/36) Installing python3-pyc (3.12.15-r0)
#54 78.19 (36/36) Installing buildtools (20261008.125411)
#54 78.19 Executing busybox-1.37.0-r30.trigger
#54 78.21 Executing eudev-3.2.14-r6.trigger
#54 78.22 OK: 214.4 MiB in 85 packages
#54 78.92 npm warn config only Use `--omit=dev` to omit dev dependencies from the install.
#54 ...

#53 [linux/arm64 build 1/1] RUN apk add --no-cache --virtual buildtools build-base linux-headers udev python3 &&     npm install --unsafe-perm --no-update-notifier --no-audit --no-fund --only=production &&     /tmp/remove_native_gpio.sh &&     cp -R node_modules prod_node_modules
#53 167.8 
#53 167.8 added 275 packages in 2m
#53 172.0 + [[ -d /usr/src/node-red/node_modules/@node-red/nodes/core/hardware ]]
#53 172.0 + echo 'Skip removing native GPIO node'
#53 172.0 Skip removing native GPIO node
#53 ...

#54 [linux/arm/v7 build 1/1] RUN apk add --no-cache --virtual buildtools build-base linux-headers udev python3 &&     npm install --unsafe-perm --no-update-notifier --no-audit --no-fund --only=production &&     /tmp/remove_native_gpio.sh &&     cp -R node_modules prod_node_modules
#54 191.4 
#54 191.4 added 275 packages in 2m
#54 194.7 Skip removing native GPIO node
#54 194.7 + [[ -d /usr/src/node-red/node_modules/@node-red/nodes/core/hardware ]]
#54 194.7 + echo 'Skip removing native GPIO node'
#54 DONE 285.3s

#53 [linux/arm64 build 1/1] RUN apk add --no-cache --virtual buildtools build-base linux-headers udev python3 &&     npm install --unsafe-perm --no-update-notifier --no-audit --no-fund --only=production &&     /tmp/remove_native_gpio.sh &&     cp -R node_modules prod_node_modules
#53 DONE 301.5s

#55 [linux/arm/v7 release 1/3] COPY --from=build /usr/src/node-red/prod_node_modules ./node_modules
#55 ...

#56 [linux/arm64 release 1/3] COPY --from=build /usr/src/node-red/prod_node_modules ./node_modules
#56 DONE 62.1s

#55 [linux/arm/v7 release 1/3] COPY --from=build /usr/src/node-red/prod_node_modules ./node_modules
#55 DONE 64.6s

#57 [linux/arm/v7 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#57 ...

#58 [linux/arm64 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#58 199.0 + [[ '' != *minimal ]]
#58 199.0 + echo 'Installing devtools'
#58 199.0 + apk add --no-cache --virtual devtools build-base linux-headers udev python3
#58 199.0 Installing devtools
#58 200.7 ( 1/36) Installing jansson (2.14.1-r0)
#58 200.7 ( 2/36) Installing binutils (2.45.1-r0)
#58 ...

#57 [linux/arm/v7 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#57 200.7 + [[ '' != *minimal ]]
#57 200.7 + echo 'Installing devtools'
#57 200.7 Installing devtools
#57 200.7 + apk add --no-cache --virtual devtools build-base linux-headers udev python3
#57 202.5 ( 1/36) Installing jansson (2.14.1-r0)
#57 202.5 ( 2/36) Installing binutils (2.45.1-r0)
#57 202.8 ( 3/36) Installing libmagic (5.46-r2)
#57 202.9 ( 4/36) Installing file (5.46-r2)
#57 203.0 ( 5/36) Installing libgomp (15.2.0-r2)
#57 203.0 ( 6/36) Installing libatomic (15.2.0-r2)
#57 203.0 ( 7/36) Installing gmp (6.3.0-r4)
#57 203.1 ( 8/36) Installing isl26 (0.26-r1)
#57 203.1 ( 9/36) Installing mpfr4 (4.2.2-r0)
#57 203.2 (10/36) Installing mpc1 (1.3.1-r1)
#57 203.2 (11/36) Installing gcc (15.2.0-r2)
#57 209.8 (12/36) Installing libstdc++-dev (15.2.0-r2)
#57 ...

#58 [linux/arm64 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#58 201.0 ( 3/36) Installing libmagic (5.46-r2)
#58 201.3 ( 4/36) Installing file (5.46-r2)
#58 201.4 ( 5/36) Installing libgomp (15.2.0-r2)
#58 201.4 ( 6/36) Installing libatomic (15.2.0-r2)
#58 201.4 ( 7/36) Installing gmp (6.3.0-r4)
#58 201.4 ( 8/36) Installing isl26 (0.26-r1)
#58 201.5 ( 9/36) Installing mpfr4 (4.2.2-r0)
#58 201.6 (10/36) Installing mpc1 (1.3.1-r1)
#58 201.6 (11/36) Installing gcc (15.2.0-r2)
#58 208.1 (12/36) Installing libstdc++-dev (15.2.0-r2)
#58 213.0 (13/36) Installing musl-dev (1.2.5-r23)
#58 ...

#57 [linux/arm/v7 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#57 214.6 (13/36) Installing musl-dev (1.2.5-r23)
#57 216.9 (14/36) Installing g++ (15.2.0-r2)
#57 ...

#58 [linux/arm64 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#58 215.8 (14/36) Installing g++ (15.2.0-r2)
#58 ...

#57 [linux/arm/v7 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#57 261.3 (15/36) Installing make (4.4.1-r3)
#57 261.3 (16/36) Installing fortify-headers (1.1-r5)
#57 261.3 (17/36) Installing patch (2.8-r0)
#57 261.3 (18/36) Installing build-base (0.5-r3)
#57 261.3 (19/36) Installing linux-headers (6.16.12-r0)
#57 ...

#58 [linux/arm64 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#58 266.2 (15/36) Installing make (4.4.1-r3)
#58 266.6 (16/36) Installing fortify-headers (1.1-r5)
#58 266.6 (17/36) Installing patch (2.8-r0)
#58 266.7 (18/36) Installing build-base (0.5-r3)
#58 266.7 (19/36) Installing linux-headers (6.16.12-r0)
#58 ...

#57 [linux/arm/v7 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#57 271.3 (20/36) Installing udev-init-scripts (35-r1)
#57 271.3 (21/36) Installing libeconf (0.8.3-r0)
#57 271.3 (22/36) Installing libblkid (2.41.6-r1)
#57 271.5 (23/36) Installing xz-libs (5.8.4-r0)
#57 271.6 (24/36) Installing kmod-libs (34.2-r1)
#57 271.6 (25/36) Installing eudev (3.2.14-r6)
#57 272.1 (26/36) Installing libbz2 (1.0.8-r6)
#57 272.1 (27/36) Installing libffi (3.5.2-r0)
#57 272.1 (28/36) Installing gdbm (1.26-r0)
#57 272.1 (29/36) Installing mpdecimal (4.0.1-r0)
#57 272.3 (30/36) Installing libpanelw (6.5_p20251123-r0)
#57 272.3 (31/36) Installing sqlite-libs (3.53.4-r0)
#57 276.7 (32/36) Installing python3 (3.12.15-r0)
#57 ...

#58 [linux/arm64 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#58 281.3 (20/36) Installing udev-init-scripts (35-r1)
#58 281.3 (21/36) Installing libeconf (0.8.3-r0)
#58 281.4 (22/36) Installing libblkid (2.41.6-r1)
#58 281.6 (23/36) Installing xz-libs (5.8.4-r0)
#58 281.8 (24/36) Installing kmod-libs (34.2-r1)
#58 281.9 (25/36) Installing eudev (3.2.14-r6)
#58 285.1 (26/36) Installing libbz2 (1.0.8-r6)
#58 285.2 (27/36) Installing libffi (3.5.2-r0)
#58 285.2 (28/36) Installing gdbm (1.26-r0)
#58 285.3 (29/36) Installing mpdecimal (4.0.1-r0)
#58 285.6 (30/36) Installing libpanelw (6.5_p20251123-r0)
#58 285.6 (31/36) Installing sqlite-libs (3.53.4-r0)
#58 287.0 (32/36) Installing python3 (3.12.15-r0)
#58 ...

#57 [linux/arm/v7 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#57 307.2 (33/36) Installing python3-pycache-pyc0 (3.12.15-r0)
#57 326.5 (34/36) Installing pyc (3.12.15-r0)
#57 326.5 (35/36) Installing python3-pyc (3.12.15-r0)
#57 326.5 (36/36) Installing devtools (20261008.130341)
#57 326.5 Executing busybox-1.37.0-r30.trigger
#57 326.5 Executing eudev-3.2.14-r6.trigger
#57 326.7 OK: 214.4 MiB in 85 packages
#57 ...

#58 [linux/arm64 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#58 329.0 (33/36) Installing python3-pycache-pyc0 (3.12.15-r0)
#58 335.8 (34/36) Installing pyc (3.12.15-r0)
#58 335.8 (35/36) Installing python3-pyc (3.12.15-r0)
#58 335.8 (36/36) Installing devtools (20261008.130339)
#58 335.8 Executing busybox-1.37.0-r30.trigger
#58 335.8 Executing eudev-3.2.14-r6.trigger
#58 335.9 OK: 315.3 MiB in 85 packages
#58 ...

#57 [linux/arm/v7 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#57 DONE 544.6s

#58 [linux/arm64 release 2/3] RUN chown -R node-red:root /usr/src/node-red &&     /tmp/install_devtools.sh &&     rm -r /tmp/*
#58 DONE 545.4s

#59 [linux/arm64 release 3/3] RUN npm config set cache /data/.npm --global
#59 ...

#60 [linux/arm/v7 release 3/3] RUN npm config set cache /data/.npm --global
#60 8.346 npm notice
#60 8.346 npm notice New major version of npm available! 10.8.2 -> 12.2.0
#60 8.346 npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.2.0
#60 8.346 npm notice To update run: npm install -g npm@12.2.0
#60 8.346 npm notice
#60 ...

#59 [linux/arm64 release 3/3] RUN npm config set cache /data/.npm --global
#59 DONE 9.3s

#60 [linux/arm/v7 release 3/3] RUN npm config set cache /data/.npm --global
#60 DONE 9.5s

#61 exporting to image
#61 exporting layers
#61 exporting layers 238.9s done
#61 exporting manifest sha256:9df5c9236ea19941778f460056d418bd3131e70b059e77ba927f52627465577a
#61 exporting manifest sha256:9df5c9236ea19941778f460056d418bd3131e70b059e77ba927f52627465577a 0.5s done
#61 exporting config sha256:291b86f1b30c0241a43396537cfa4ae7147b6ba3807474624719fe8955e49720
#61 exporting config sha256:291b86f1b30c0241a43396537cfa4ae7147b6ba3807474624719fe8955e49720 0.2s done
#61 exporting attestation manifest sha256:071994d5ec7fc22c16a85f89c824854ca1e737c71f53f9c05816d4f6684fc80f
#61 exporting attestation manifest sha256:071994d5ec7fc22c16a85f89c824854ca1e737c71f53f9c05816d4f6684fc80f 0.3s done
#61 exporting manifest sha256:f5ceab0c52b9f1d594b620f87dd64b7b120b2b71c6935fd13b54496d1176be45
#61 exporting manifest sha256:f5ceab0c52b9f1d594b620f87dd64b7b120b2b71c6935fd13b54496d1176be45 0.5s done
#61 exporting config sha256:d253deca1ad88a8d516d3463646d11eb80af1317dc970ad237231c9f22f34575
#61 exporting config sha256:d253deca1ad88a8d516d3463646d11eb80af1317dc970ad237231c9f22f34575 0.3s done
#61 exporting attestation manifest sha256:163f602f1ed82915cc8cd48ca3239535e084d262b6e0138d29e9b40c6a03ecdd 0.0s done
#61 exporting manifest list sha256:43424ed6e4bca9dcf0695f72bc2a33625518fcfd4501e9e5c9015672f04f9ff5
#61 exporting manifest list sha256:43424ed6e4bca9dcf0695f72bc2a33625518fcfd4501e9e5c9015672f04f9ff5 0.3s done
#61 DONE 241.2s

#61 exporting to image
#61 pushing layers
#61 ...

#62 [auth] nodered/node-red:pull,push token for registry-1.docker.io
#62 DONE 0.0s

#61 exporting to image
#61 pushing layers 91.9s done
#61 pushing manifest for docker.io/nodered/node-red
#61 pushing manifest for docker.io/nodered/node-red 3.1s done
#61 ...

#63 [auth] node-red/node-red:pull,push token for ghcr.io
#63 DONE 0.0s

#61 exporting to image
#61 pushing layers 87.8s done
#61 pushing manifest for ghcr.io/node-red/node-red
#61 ...

#64 [auth] node-red/node-red:pull,push token for ghcr.io
#64 DONE 0.0s

#61 exporting to image
#61 pushing manifest for ghcr.io/node-red/node-red 3.2s done
#61 DONE 427.2s

#65 resolving provenance for metadata file
#65 DONE 3.4s

#66 merging manifest list nodered/node-red:4.1.16-20,ghcr.io/node-red/node-red:4.1.16-20,nodered/node-red:latest-20,ghcr.io/node-red/node-red:latest-20
#66 DONE 5.2s

Additional info

No response

Activity

  1. crazy-max commented on Oct 9, 2026

    @crazy-max
    Member

    I reproduced this in the Buildx resolver with the same three-node configuration and simulated worker platforms. It looks like a bug in how explicitly configured platforms are prioritized after worker discovery 🙈

    The first node has no explicit platforms setting, so resolving linux/amd64 triggers worker discovery. Buildx then re-resolves all requested platforms, treating configured and detected platforms equally. If the Pi 4 advertises linux/arm64, it wins the tie with the Pi 5 because it appears first, despite ARM64 being explicitly assigned to the Pi 5.

    As a workaround, try adding platforms: linux/amd64 to the top-level with: block:

    with:
      platforms: linux/amd64
      append: |
        - endpoint: ssh://nr@${{ secrets.SSH_REMOTE_HOST }}:2023
          platforms: linux/arm/v6,linux/arm/v7
        - endpoint: ssh://nr@${{ secrets.SSH_REMOTE_HOST }}:2022
          platforms: linux/arm64

    That produces the expected assignments in the resolver test because all requested platforms now have explicit matches. I haven't tested this against the actual Pi builders. The underlying fix should preserve explicit platform priority when worker discovery is needed.

  2. modified the milestones: v0.38.0, v0.39.0 on Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions