Latest image on docker hub causes "exec format error" #212

Closed
opened 2025-11-20 04:21:35 -05:00 by saavagebueno · 11 comments
Owner

Originally created by @sonnatager on GitHub (Sep 2, 2022).

After pulling the newest image from dockerhub ddns-updater is throwing "exec format error" exceptions when starting container with docker-compose.

1. Is this urgent: Yes

2. DNS provider(s) you use:

Strato

3. Program version:

Running version commit 7fcd0f9

4. What are you using to run the container: docker-compose

5. Extra information (optional)

docker-compose config:

version: "3"
services:
  ddns-updater:
    image: qmcgaw/ddns-updater:latest
    container_name: ddns-updater
    platform: linux/arm64
    ports:
      - 8000:8000/tcp
    volumes:
      - /srv/ddns:/updater/data
    environment:
      - PERIOD=5m
      - UPDATE_COOLDOWN_PERIOD=5m
      - PUBLICIP_FETCHERS=all
      - PUBLICIP_HTTP_PROVIDERS=ifconfig,ipinfo
      - PUBLICIPV4_HTTP_PROVIDERS=ipify,noip
      - PUBLICIPV6_HTTP_PROVIDERS=ipify,noip
      - PUBLICIP_DNS_PROVIDERS=cloudflare
      - PUBLICIP_DNS_TIMEOUT=3s
      - HTTP_TIMEOUT=10s
      - ROOT_URL=/

      # Web UI
      - LISTENING_PORT=8000

      # Backup
      - BACKUP_PERIOD=24h # 0 to disable
      - BACKUP_DIRECTORY=/updater/data

      # Other
      - LOG_LEVEL=debug
      - LOG_CALLER=short
      - SHOUTRRR_ADDRESSES=
    restart: always

config.json:

{
  "settings": [
    {
      "provider": "strato",
      "domain": "subdomain.domain.tld",
      "host": "@",
      "password": "************",
      "ip_version": "ipv4",
      "provider_ip": true
    }
  ]
}

Screenshot of log
Screenshot from 2022-09-02 14-01-36

Host OS:
Raspberry PI 4 Model B
Debian GNU/Linux 11 (bullseye)
OS-Version 11.4

Originally created by @sonnatager on GitHub (Sep 2, 2022). After pulling the newest image from dockerhub ddns-updater is throwing "exec format error" exceptions when starting container with docker-compose. #### 1. Is this urgent: Yes #### 2. DNS provider(s) you use: Strato #### 3. Program version: Running version commit 7fcd0f9 #### 4. What are you using to run the container: docker-compose #### 5. Extra information (optional) docker-compose config: ```yaml version: "3" services: ddns-updater: image: qmcgaw/ddns-updater:latest container_name: ddns-updater platform: linux/arm64 ports: - 8000:8000/tcp volumes: - /srv/ddns:/updater/data environment: - PERIOD=5m - UPDATE_COOLDOWN_PERIOD=5m - PUBLICIP_FETCHERS=all - PUBLICIP_HTTP_PROVIDERS=ifconfig,ipinfo - PUBLICIPV4_HTTP_PROVIDERS=ipify,noip - PUBLICIPV6_HTTP_PROVIDERS=ipify,noip - PUBLICIP_DNS_PROVIDERS=cloudflare - PUBLICIP_DNS_TIMEOUT=3s - HTTP_TIMEOUT=10s - ROOT_URL=/ # Web UI - LISTENING_PORT=8000 # Backup - BACKUP_PERIOD=24h # 0 to disable - BACKUP_DIRECTORY=/updater/data # Other - LOG_LEVEL=debug - LOG_CALLER=short - SHOUTRRR_ADDRESSES= restart: always ``` config.json: ```json { "settings": [ { "provider": "strato", "domain": "subdomain.domain.tld", "host": "@", "password": "************", "ip_version": "ipv4", "provider_ip": true } ] } ``` Screenshot of log ![Screenshot from 2022-09-02 14-01-36](https://user-images.githubusercontent.com/37934901/188143611-dca0015d-bd81-4b11-9897-c1fe13a67f79.png) Host OS: Raspberry PI 4 Model B Debian GNU/Linux 11 (bullseye) OS-Version 11.4
Author
Owner

@qdm12 commented on GitHub (Sep 2, 2022):

Try removing platform: linux/arm64 from your docker-compose.yml and docker-compose pull, and restart it?

exec format error usually happens when the binary is built for another architecture than your host. If you don't specify the platform it would use the host platform without any emulation. RPI4 should be arm64, but maybe your OS isn't for whatever reason.

If this doesn't work, try docker image rm qmcgaw/ddns-updater + docker pull qmcgaw/ddns-updater maybe it pulled the image for the wrong platform for some obscure reason.

@qdm12 commented on GitHub (Sep 2, 2022): Try removing `platform: linux/arm64` from your docker-compose.yml and `docker-compose pull`, and restart it? `exec format error` usually happens when the binary is built for another architecture than your host. If you don't specify the platform it would use the host platform without any emulation. RPI4 should be arm64, but maybe your OS isn't for whatever reason. If this doesn't work, try `docker image rm qmcgaw/ddns-updater` + `docker pull qmcgaw/ddns-updater` maybe it pulled the image for the wrong platform for some obscure reason.
Author
Owner

@sonnatager commented on GitHub (Sep 2, 2022):

I added the platform: linux/arm64 just for test purposes, but it did not work with nor without this parameter.
I removed the image as you mentioned with docker image rm qmcgaw/ddns-updater and pulled it new with docker pull qmcgaw/ddns-updater but there is not difference.

If i run uname -a i get the following information:
Linux raspberrypi 5.15.61-v8+ #1579 SMP PREEMPT Fri Aug 26 11:16:44 BST 2022 aarch64 GNU/Linux
As statet here, my architecture is aarch64, which i thougth is the same as arm64.

Also notable: I pulled your image last week and it just worked fine. Today i did a docker-compose pull to get the latest images and now it don't work.

Here is the output of docker image inspect d78282e2bd5e:

[
    {
        "Id": "sha256:d78282e2bd5e263b347548fd4ff4a583b203bf2a721be39d430041b15d5e7a08",
        "RepoTags": [
            "qmcgaw/ddns-updater:latest"
        ],
        "RepoDigests": [
            "qmcgaw/ddns-updater@sha256:9c888925d4deb1d5dd92aa4b1d1a0de580202b91d96562c37bc040620959dad3"
        ],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2022-08-30T01:33:22.943651931Z",
        "Container": "",
        "ContainerConfig": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": null,
            "Cmd": null,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "1000:1000",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "8000/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "CONFIG=",
                "PERIOD=5m",
                "UPDATE_COOLDOWN_PERIOD=5m",
                "PUBLICIP_FETCHERS=all",
                "PUBLICIP_HTTP_PROVIDERS=all",
                "PUBLICIPV4_HTTP_PROVIDERS=all",
                "PUBLICIPV6_HTTP_PROVIDERS=all",
                "PUBLICIP_DNS_PROVIDERS=all",
                "PUBLICIP_DNS_TIMEOUT=3s",
                "HTTP_TIMEOUT=10s",
                "DATADIR=/updater/data",
                "LISTENING_PORT=8000",
                "ROOT_URL=/",
                "BACKUP_PERIOD=0",
                "BACKUP_DIRECTORY=/updater/data",
                "LOG_LEVEL=info",
                "LOG_CALLER=hidden",
                "SHOUTRRR_ADDRESSES=",
                "TZ="
            ],
            "Cmd": null,
            "Healthcheck": {
                "Test": [
                    "CMD",
                    "/updater/app",
                    "healthcheck"
                ],
                "Interval": 60000000000,
                "Timeout": 5000000000,
                "StartPeriod": 10000000000,
                "Retries": 2
            },
            "Image": "",
            "Volumes": null,
            "WorkingDir": "/",
            "Entrypoint": [
                "/updater/app"
            ],
            "OnBuild": null,
            "Labels": {
                "org.opencontainers.image.authors": "quentin.mcgaw@gmail.com",
                "org.opencontainers.image.created": "2022-08-30T01:28:20Z",
                "org.opencontainers.image.description": "Universal DNS updater with WebUI",
                "org.opencontainers.image.documentation": "https://github.com/qdm12/ddns-updater",
                "org.opencontainers.image.revision": "7fcd0f9",
                "org.opencontainers.image.source": "https://github.com/qdm12/ddns-updater",
                "org.opencontainers.image.title": "ddns-updater",
                "org.opencontainers.image.url": "https://github.com/qdm12/ddns-updater",
                "org.opencontainers.image.version": "latest"
            }
        },
        "Architecture": "arm64",
        "Os": "linux",
        "Size": 18743296,
        "VirtualSize": 18743296,
        "GraphDriver": {
            "Data": {
                "MergedDir": "/var/lib/docker/overlay2/a323cc17312ebda4ca2493dc60266cfeaffa0149038e7ce3f09fbf40e7577c27/merged",
                "UpperDir": "/var/lib/docker/overlay2/a323cc17312ebda4ca2493dc60266cfeaffa0149038e7ce3f09fbf40e7577c27/diff",
                "WorkDir": "/var/lib/docker/overlay2/a323cc17312ebda4ca2493dc60266cfeaffa0149038e7ce3f09fbf40e7577c27/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:b302a818b7f7eec04e872a9c9131dfa7796106360195615c6fa4df64786e56e8"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]
@sonnatager commented on GitHub (Sep 2, 2022): I added the `platform: linux/arm64` just for test purposes, but it did not work with nor without this parameter. I removed the image as you mentioned with `docker image rm qmcgaw/ddns-updater` and pulled it new with `docker pull qmcgaw/ddns-updater` but there is not difference. If i run `uname -a` i get the following information: `Linux raspberrypi 5.15.61-v8+ #1579 SMP PREEMPT Fri Aug 26 11:16:44 BST 2022 aarch64 GNU/Linux` As statet here, my architecture is `aarch64`, which i thougth is the same as `arm64`. Also notable: I pulled your image last week and it just worked fine. Today i did a `docker-compose pull` to get the latest images and now it don't work. Here is the output of `docker image inspect d78282e2bd5e`: ```json [ { "Id": "sha256:d78282e2bd5e263b347548fd4ff4a583b203bf2a721be39d430041b15d5e7a08", "RepoTags": [ "qmcgaw/ddns-updater:latest" ], "RepoDigests": [ "qmcgaw/ddns-updater@sha256:9c888925d4deb1d5dd92aa4b1d1a0de580202b91d96562c37bc040620959dad3" ], "Parent": "", "Comment": "buildkit.dockerfile.v0", "Created": "2022-08-30T01:33:22.943651931Z", "Container": "", "ContainerConfig": { "Hostname": "", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": null, "Cmd": null, "Image": "", "Volumes": null, "WorkingDir": "", "Entrypoint": null, "OnBuild": null, "Labels": null }, "DockerVersion": "", "Author": "", "Config": { "Hostname": "", "Domainname": "", "User": "1000:1000", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "ExposedPorts": { "8000/tcp": {} }, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "CONFIG=", "PERIOD=5m", "UPDATE_COOLDOWN_PERIOD=5m", "PUBLICIP_FETCHERS=all", "PUBLICIP_HTTP_PROVIDERS=all", "PUBLICIPV4_HTTP_PROVIDERS=all", "PUBLICIPV6_HTTP_PROVIDERS=all", "PUBLICIP_DNS_PROVIDERS=all", "PUBLICIP_DNS_TIMEOUT=3s", "HTTP_TIMEOUT=10s", "DATADIR=/updater/data", "LISTENING_PORT=8000", "ROOT_URL=/", "BACKUP_PERIOD=0", "BACKUP_DIRECTORY=/updater/data", "LOG_LEVEL=info", "LOG_CALLER=hidden", "SHOUTRRR_ADDRESSES=", "TZ=" ], "Cmd": null, "Healthcheck": { "Test": [ "CMD", "/updater/app", "healthcheck" ], "Interval": 60000000000, "Timeout": 5000000000, "StartPeriod": 10000000000, "Retries": 2 }, "Image": "", "Volumes": null, "WorkingDir": "/", "Entrypoint": [ "/updater/app" ], "OnBuild": null, "Labels": { "org.opencontainers.image.authors": "quentin.mcgaw@gmail.com", "org.opencontainers.image.created": "2022-08-30T01:28:20Z", "org.opencontainers.image.description": "Universal DNS updater with WebUI", "org.opencontainers.image.documentation": "https://github.com/qdm12/ddns-updater", "org.opencontainers.image.revision": "7fcd0f9", "org.opencontainers.image.source": "https://github.com/qdm12/ddns-updater", "org.opencontainers.image.title": "ddns-updater", "org.opencontainers.image.url": "https://github.com/qdm12/ddns-updater", "org.opencontainers.image.version": "latest" } }, "Architecture": "arm64", "Os": "linux", "Size": 18743296, "VirtualSize": 18743296, "GraphDriver": { "Data": { "MergedDir": "/var/lib/docker/overlay2/a323cc17312ebda4ca2493dc60266cfeaffa0149038e7ce3f09fbf40e7577c27/merged", "UpperDir": "/var/lib/docker/overlay2/a323cc17312ebda4ca2493dc60266cfeaffa0149038e7ce3f09fbf40e7577c27/diff", "WorkDir": "/var/lib/docker/overlay2/a323cc17312ebda4ca2493dc60266cfeaffa0149038e7ce3f09fbf40e7577c27/work" }, "Name": "overlay2" }, "RootFS": { "Type": "layers", "Layers": [ "sha256:b302a818b7f7eec04e872a9c9131dfa7796106360195615c6fa4df64786e56e8" ] }, "Metadata": { "LastTagTime": "0001-01-01T00:00:00Z" } } ] ```
Author
Owner

@qdm12 commented on GitHub (Sep 2, 2022):

It was due to an external PR bumping xcputranslate which is used for cross compilation of the Go binary, and its CLI usage changed (it's v0.x.x so its API was meant to be unstable) but its usage wasn't updated in that PR. My bad I approved/merged it without realizing it (and since CI passed as well).

Anyway thanks for the detailed issue and comments, that definitely helped me pinpoint it! 👍

@qdm12 commented on GitHub (Sep 2, 2022): It was due to an external PR bumping `xcputranslate` which is used for cross compilation of the Go binary, and its CLI usage changed (it's v0.x.x so its API was meant to be unstable) but its usage wasn't updated in that PR. My bad I approved/merged it without realizing it (and since CI passed as well). Anyway thanks for the detailed issue and comments, that definitely helped me pinpoint it! 👍
Author
Owner

@sonnatager commented on GitHub (Sep 2, 2022):

Hi Quentin,

Sorry for the inconvenience. I tested it right now, but it still does not work. I checked, that i pulled the right image, but still not working. Can you please take another look on it?

Do you need some more logs or other information?

@sonnatager commented on GitHub (Sep 2, 2022): Hi Quentin, Sorry for the inconvenience. I tested it right now, but it still does not work. I checked, that i pulled the right image, but still not working. Can you please take another look on it? Do you need some more logs or other information?
Author
Owner

@qdm12 commented on GitHub (Sep 2, 2022):

Are you sure? I'm running 2022-09-02T17:40:20Z (commit d521868) on arm64 with emulation using

docker rm qmcgaw/ddns-updater
docker run -it --rm --platform linux/arm64 qmcgaw/ddns-updater

And it seems to work for me? 🤔 Do you have the same logged version as well?

EDIT: wait a second, I think my fix is still not fixing it

@qdm12 commented on GitHub (Sep 2, 2022): Are you sure? I'm running `2022-09-02T17:40:20Z (commit d521868)` on arm64 with emulation using ```sh docker rm qmcgaw/ddns-updater docker run -it --rm --platform linux/arm64 qmcgaw/ddns-updater ``` And it seems to work for me? 🤔 Do you have the same logged version as well? EDIT: wait a second, I think my fix is still not fixing it
Author
Owner

@qdm12 commented on GitHub (Sep 2, 2022):

Oops it turns out my xcputranslate v0.7.0 is just plain wrong, I reverted back to v0.6.0 in 251112697a

@qdm12 commented on GitHub (Sep 2, 2022): Oops it turns out my xcputranslate v0.7.0 is just plain wrong, I reverted back to v0.6.0 in 251112697a3ce577b0fe8ec215350ed737e48f77
Author
Owner

@qdm12 commented on GitHub (Sep 2, 2022):

It should work now I reverted to v0.6.0, and it should cross build properly.
I also fixed xcputranslate with v0.8.0.

@qdm12 commented on GitHub (Sep 2, 2022): It should work now I reverted to v0.6.0, and it should cross build properly. I also fixed [xcputranslate with v0.8.0](https://github.com/qdm12/xcputranslate/releases/tag/v0.8.0).
Author
Owner

@sonnatager commented on GitHub (Sep 4, 2022):

It's working now. Thank you!

@sonnatager commented on GitHub (Sep 4, 2022): It's working now. Thank you!
Author
Owner

@deboy69 commented on GitHub (Sep 9, 2022):

docker hub still isnt updated and still shows the error with latest tag. Using rpi arm64 arch

@deboy69 commented on GitHub (Sep 9, 2022): docker hub still isnt updated and still shows the error with latest tag. Using rpi arm64 arch
Author
Owner

@qdm12 commented on GitHub (Sep 16, 2022):

@deboy69 what's your platform? @sonnatager says it works, please paste the error message you get and what docker image hash you use.

@qdm12 commented on GitHub (Sep 16, 2022): @deboy69 what's your platform? @sonnatager says it works, please paste the error message you get and what docker image hash you use.
Author
Owner

@deboy69 commented on GitHub (Sep 16, 2022):

Sorry, deleted the image when it stopped working. Just spun up the container again and its working again.

@deboy69 commented on GitHub (Sep 16, 2022): Sorry, deleted the image when it stopped working. Just spun up the container again and its working again.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ddns-updater#212