Skip to content

linux/arm64 image contains x86_64 binaries #920

Closed

Description

@redbaron

Looks like published image v1.20.1 for the linux/arm64 architecture was build as an x86_64.

$ docker run --rm -it --platform=linux/arm64 --entrypoint= ghcr.io/flant/shell-operator:v1.20.1
...

# file shell-operator
shell-operator: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-x86_64.so.1, BuildID[sha1]=b432a223da3aa052bc17c3b2e244ed04d65d8f39, stripped

Activity

  1. Max-Sum commented on Jul 22, 2026

    @Max-Sum

    This happened since v1.19.5.

  2. steveteuber commented on Aug 26, 2026

    @steveteuber

    I could reproduce this with v1.19.5.

    The regression appears to start with commit c4abfeb, which changed the build and runtime stages from multi-architecture base images to pinned registry.deckhouse.io/container-factory digests. FYI @fuldaxxx

    I checked the runtime base image with:

    docker pull --platform linux/arm64 \
      registry.deckhouse.io/container-factory@sha256:8fa8cf713bf8cfc9038901e5b2fbc97d0403794d834dc4a619e9e81312a6feef
    
    docker image inspect \
      registry.deckhouse.io/container-factory@sha256:8fa8cf713bf8cfc9038901e5b2fbc97d0403794d834dc4a619e9e81312a6feef \
      --format '{{.Id}} {{.Os}}/{{.Architecture}}'

    The result is:

    sha256:79b82d142b7dcd2317f0575aa9ca847c0782a56f92b721dd72c2518dfa6f5690 linux/amd64

    The contents confirm this:

    docker run --rm --platform linux/arm64 \
      --entrypoint /bin/sh \
      sha256:79b82d142b7dcd2317f0575aa9ca847c0782a56f92b721dd72c2518dfa6f5690 \
      -c 'uname -m; file /bin/busybox /bin/sh'

    Output:

    x86_64
    /bin/busybox: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-x86_64.so.1, BuildID[sha1]=34b42ef64c28cf5150049d56ba3f20c5cb390288, stripped
    /bin/sh:      symbolic link to /bin/busybox
  3. redbaron commented on Oct 13, 2026

    @redbaron
    Author

    @ldmonster , @Glitchy-Sheep , new releases are still published with broken ARM64

  4. Glitchy-Sheep commented on Oct 29, 2026

    @Glitchy-Sheep
    Contributor

    Hey folks!

    Fixed in v1.21.4 via #956.

    Please update to ghcr.io/flant/shell-operator:v1.21.4 or flant/shell-operator:v1.21.4.

    • restored multi-platform base images and added architecture checks before publication (so we catch this before publishing next time)

    Backports for 1.20 (#958) and 1.19 (#959) are available in v1.20.7 and v1.19.6.

    Thanks for reporting and investigating this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions