LooLzzz / docking-station

272 stars 4 forks source link

[arm64] Refresh: Exec format error #24

Open benniblot opened 2 months ago

benniblot commented 2 months ago

When trying to refresh all containers, this error gets outputted to the log multiple times:

[SERVER] ERROR: Error running regctl command: Error running regctl command: /bin/sh: 1: regctl: Exec format error

Host: Raspberry Pi 4B (4GB) OS: Raspberry Pi OS Lite (64-bit) Compose: Recommended one

LooLzzz commented 2 months ago

Unfortunately I don't have an ARM64 device to test this on.

If anyone is interested in helping out, please feel free to contribute by testing it on your ARM64 device and sharing any feedback or issues you encounter.
Your help would be greatly appreciated!

DimaTc commented 1 month ago

Hi @benniblot

I’ve been looking into the issue and believe it could be related to the following lines:

https://github.com/LooLzzz/docking-station/blob/26b3ce9fa125b0c2120b0fef0e7ec18fa4b49789/Dockerfile.deploy#L60 (And dev container if relevent) https://github.com/LooLzzz/docking-station/blob/26b3ce9fa125b0c2120b0fef0e7ec18fa4b49789/.devcontainer/Dockerfile#L16 This is an amd64 link, and won't work on arm64. I don’t have access to an arm64 device as well, to test this myself, but if you could try changing the link locally to: https://github.com/regclient/regclient/releases/latest/download/regctl-linux-arm64 and see if that resolves the issue, it could be helpful.

If that works, I suggest updating the Dockerfile to dynamically handle the architecture with something like this:

RUN ARCH=$(uname -m) \
    && if [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; else ARCH="amd64"; fi \
    && curl -L https://github.com/regclient/regclient/releases/latest/download/regctl-linux-$ARCH > /usr/bin/regctl \
    && chmod 755 /usr/bin/regctl

Let me know if this helps :)