jesec / flood

A modern web UI for various torrent clients with a Node.js backend and React frontend.
https://flood.js.org
GNU General Public License v3.0
2.21k stars 136 forks source link

Exec format error for current master container #451

Open jaredledvina opened 2 years ago

jaredledvina commented 2 years ago

Type: Bug Report

Your Environment

Summary

I'm attempting to run the latest master of the docker container as I typically do, it seems like there might be an Arch issue?

root@host01:~# podman run docker.io/jesec/flood:master
[FATAL tini (2)] exec flood failed: Exec format error

This isn't an issue with the one tagged latest:

root@host01:~# podman run docker.io/jesec/flood:latest
Flood server 4.7.0 starting on http://0.0.0.0:3000

(node:2) [DEP0111] DeprecationWarning: Access to process.binding('http_parser') is deprecated.
(Use `node --trace-deprecation ...` to show where the warning was created)

However, is similar if you force the wrong arch:

root@host01:~# podman run --arch=arm64 docker.io/jesec/flood:latest
Trying to pull docker.io/jesec/flood:latest...
Getting image source signatures
Copying blob bea43854909d done
Copying blob 1a6089d26281 done
Copying blob 16b894a501a5 done
Copying blob 563ce5fbb91e done
Copying blob c9c393430fa7 done
Copying blob bbf911997326 done
Copying blob 33d7a03aee28 done
Copying config ecc30b6060 done
Writing manifest to image destination
Storing signatures
{"msg":"exec container process `/sbin/tini`: Exec format error","level":"error","time":"2021-11-30T02:11:51.000179891Z"}

Interestingly, this is not an issue with the master-distroless image:

root@host01:~# podman run docker.io/jesec/flood:master-distroless
Trying to pull docker.io/jesec/flood:master-distroless...
Getting image source signatures
Copying blob beaaaf53e565 done
Copying config 2ddc26aa9a done
Writing manifest to image destination
Storing signatures
Flood server 0.0.0-master.3b7c8dc starting on http://0.0.0.0:3000

Expected Behavior

The latest master image would run like it has for a while now and how the current latest image runs.

Current Behavior

Master image fails due to exec issue.

Possible Solution

I suspect the build on master pushed a different arch to the 'master' tag than the typical amd64. Perhaps we need to add support for each arch on master?

Steps to Reproduce

  1. In a standard Podman (and I suspect Docker) install on an amd64 based host, run podman run docker.io/jesec/flood:master

Context

Trying to run flood in a normal podman install and it's failing. It's been a while since I've pulled the image though, so I'm not sure which change caused this.

wasgehthierab commented 2 years ago

I have the same problem in docker

Sparticuz commented 2 years ago

Same for me: standard_init_linux.go:228: exec user process caused: exec format error

Sparticuz commented 2 years ago

Updating my containers this morning seems to have fixed the problem.

jaredledvina commented 2 years ago

I suspect there's a race in the master container build process where the wrong arch got pushed and tagged as amd64. I'm not familiar with multi-arch images though. I'm also not sure if this can easily happen on any commit to master or not.