-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARM64: exec /usr/local/bin/docker-entrypoint.sh: exec format error #2114
Comments
Same here (arm64) |
Same here, I inspected the docker image and it contains amd64 binaries (except the listmonk binary itself). |
Will take a look at it today (end of day). @pbence is correct that error message suggests that the wrong binary is packed inside the ARM64 docker image (as proven by him). Thing here is understanding if we published the x86 image with the wrong tags to docker hub or if the build process built the build the ARM64 image but places there the x86 binary. @pbence, @thueske and @mnbro are you using docker or podman, and are you using MacBook or running this in Linux (eg aws graviton?) |
The goreleaser build config hasn’t changed between tbe last version and this one though. Building bins, packing them and posting on GitHub releases and uploading and tagging to DockerHub are all done automatically by goreleaser. |
Initial debug. I'm using MacBook M2 running Docker version 27.1.1, build 6312585 Pulling the latest version of listmonk:v4.0.1 and not forcing the "platform" so that Docker daemon is the one resolving it for me: $ docker pull listmonk/listmonk:v4.0.1 The version of docker pulled seems to match the right architecture since I'm running an ARM64 cpu (M2): $ docker inspect listmonk/listmonk | grep Architecture
"Architecture": "arm64", Explicitly running the
In the end of the day, I will go a bit deeper on this, but it seems to be running ok, will ask another person meanwhile with ARM powered PC to try to repeat this instructions and see if they work for them. @pbence and @mnbro are you running this on your local machine using Docker or are your trying to deploy this to Kubernetes cluster via Helm chart? cc/ @knadh |
Using Alpine Linux with Docker on Hetzner ARM64 servers.
Additional details:
(On my MacBook M3 Pro everything works.) |
@thueske can you run the following on your MacBook and Hetzner instance please: Enter the $ docker run -ti --rm --entrypoint /bin/sh listmonk/listmonk:v4.0.1 You should be dropped inside the docker container inside the $ ls -la
total 16888
drwxr-xr-x 1 root root 4096 Oct 28 07:55 .
drwxr-xr-x 1 root root 4096 Oct 29 08:52 ..
-rw-r--r-- 1 root root 695 Oct 28 07:55 config.toml
-rwxr-xr-x 1 root root 17278744 Oct 28 07:55 listmonk Install now the $ apk add file Now just run
Will try to run this on a linux machine and probably register on Hetzner to debug later. |
Hetzner The funny thing is that I can't even execute the command...
|
@thueske can you delete any existing docker image from your Hetzner host and "force" the pull of the
The error is strange, can't be sure if the issue is with the docker version installed or with the pulled docker image. |
Same error as before. |
@thueske last question for the day, can you please check if the docker images | grep listmonk/listmonk
listmonk/listmonk v4.0.1 943d02b009bb 25 hours ago 28.6MB
listmonk/listmonk latest b4602d730116 8 months ago 25.3MB |
The issue seems to be with the build (docker image) and not the binary inside the docker container. I created a server in Hetzner (Ampere with ARM64 architecture) using lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble Running on a ARM64 architecture $ uname -a
Linux ubuntu-4gb-nbg1-1 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:26:41 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux Checking the docker version (client= $ docker version
Client:
Version: 24.0.7
API version: 1.43
Go version: go1.22.2
Git commit: 24.0.7-0ubuntu4.1
Built: Fri Aug 9 02:33:20 2024
OS/Arch: linux/arm64
Context: default
Server:
Engine:
Version: 24.0.7
API version: 1.43 (minimum version 1.12)
Go version: go1.22.2
Git commit: 24.0.7-0ubuntu4.1
Built: Fri Aug 9 02:33:20 2024
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.7.12
GitCommit:
runc:
Version: 1.1.12-0ubuntu3.1
GitCommit:
docker-init:
Version: 0.19.0
GitCommit: Pulling the docker image $ docker pull listmonk/listmonk:v4.0.1 Trying to run docker image, we can that running the image fails $ docker run -ti --rm --entrypoint /bin/sh listmonk/listmonk:v4.0.1
exec /bin/sh: exec format error The image is the expected: $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
listmonk/listmonk v4.0.1 943d02b009bb 26 hours ago 28.6MB Now trying I'm going to copy the binary from the docker image and run it locally to see if the issue is with the "build" docker image (linux or entrypoint) or the binary: docker create --name temp_container listmonk/listmonk:v4.0.1 $ docker cp temp_container:/listmonk/listmonk . Running the extracted ./listmonk
2024/10/29 09:33:48.323613 main.go:107: v4.0.1 (f5dfb0c 2024-10-28T07:48:58Z, linux/arm64)
2024/10/29 09:33:48.323732 init.go:162: reading config: config.toml
2024/10/29 09:33:48.323775 init.go:165: config file not found. If there isn't one yet, run --new-config to generate one. The issue is with the packaging of the docker image, we need to review the cicd pipeline. |
Hey everyone, hope you're doing well! After further investigation, it appears that the issue is with the Docker image packaging rather than the Here's what we found inside the Docker container:
This output indicates that While the
The Dockerfile might be using the wrong base image architecture. Even though the image is tagged as The build process may not be correctly passing the target platform information, causing it to pull the |
The issue is fixed pull-request #2123 with the help of @Jalmeida1994 <3 cc/ @knadh |
@lmmendes @Jalmeida1994 Thank you very much for fixing the bug! Could you provide an estimate on when the new Docker image with the fix will be available in the registry? |
Merged, thank you! I'll wait until this weekend to see if there are any more issues with the last release (there are a couple minor, but annoying ones that have already been fixed) and publish |
Any news? |
Will release this week. A couple more minor bug reports have come in, which I want to fix and ship in the interim release. Giving it a couple more days before pulling the plug on the current version. |
Any further updates on this? It would be really nice to get at least a hotfix for a bug this severe. |
Managed to merge a few fixes this weekend. After a round of testing, will release v4.1.0 today or tomorrow. |
Having the same issue. Waiting for the release |
v4.1.0 is released. |
Version:
Description of the bug and steps to reproduce:
I'm attempting to run the Docker image on an ARM64 server, but I'm encountering an error:
exec /usr/local/bin/docker-entrypoint.sh: exec format error
The text was updated successfully, but these errors were encountered: