outline-server
outline-server copied to clipboard
Raspberry Pi - Shadowbox Stuck Restarting, Install Script Freezes
When installing on the Raspberry Pi 4B running Ubuntu 20.10, the process freezes on
> Waiting for Outline server to be healthy ....
Inspecting the docker container for shadowbox, I can see this error:
standard_init_linux.go:219: exec user process caused: exec format error
standard_init_linux.go:219: exec user process caused: exec format error
standard_init_linux.go:219: exec user process caused: exec format error
standard_init_linux.go:219: exec user process caused: exec format error
standard_init_linux.go:219: exec user process caused: exec format error
standard_init_linux.go:219: exec user process caused: exec format error
standard_init_linux.go:219: exec user process caused: exec format error
standard_init_linux.go:219: exec user process caused: exec format error
standard_init_linux.go:219: exec user process caused: exec format error
standard_init_linux.go:219: exec user process caused: exec format error
standard_init_linux.go:219: exec user process caused: exec format error
Same issue here
Should be noted that this issue occurs on Rasbpian as well
I've figure out how to solve this. The main reason is that Jigsaw didn't maintain the docker image of shadowbox for ARM64 (https://github.com/Jigsaw-Code/outline-server/issues/244). Just enter export SB_IMAGE=ken1029/shadowbox:latest
before running install_server.sh
and the installation will work. Thanks ken1029 for compiling ARM version shadowbox.
Here is a example
export SB_IMAGE=ken1029/shadowbox:latest
wget https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh
bash install_server.sh --hostname "yourhost.com"
Just enter export SB_IMAGE=ken1029/shadowbox:latest before running install_server.sh and the installation will work.
Can confirm success on Raspberry Pi 3 Model B Plus Rev 1.3 running Ubuntu 20.04.2 LTS aarch64
Same issue here on raspberry pi.
I've figure out how to solve this. The main reason is that Jigsaw didn't maintain the docker image of shadowbox for ARM64 (#244). Just enter
export SB_IMAGE=ken1029/shadowbox:latest
before runninginstall_server.sh
and the installation will work. Thanks ken1029 for compiling ARM version shadowbox.
But the kern1029/shadowbox:latest was last updated 2years ago, while default image https://quay.io/repository/outline/shadowbox?tab=history was last updated in April, 2021. Also, second service - watchtower should service shadowbox image update, so without regular image builds for arm architecture it is useless.
I think that correct way of dealing with this situation is to provide multi-acrh image like described here https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/
sudo apt install binfmt-support qemu qemu-user-static
can pass this error
but lead to another
Starting Prometheus with args [--config.file,/opt/outline/persisted-state/prometheus/config.yml,--web.enable-admin-api,--storage.tsdb.retention.time,31d,--storage.tsdb.path,/opt/outline/persisted-state/prometheus/data,--web.listen-address,127.0.0.1:9090,--log.level,info] E2021-10-25T15:52:54.788Z 22 main.js:108] Prometheus has exited with error. Code: null, Signal: SIGILL
Note that to do this you'll have delegate the underlying node image based on arch as well - currently it's pinned to just the one: https://github.com/Jigsaw-Code/outline-server/blob/master/src/shadowbox/docker/build_action.sh#L24
Btw, https://github.com/Jigsaw-Code/outline-server/blob/master/third_party/outline-ss-server/linux/outline-ss-server is another hardcoded blob if someone going to rebuild the image for different arch
Guys lets fix this issue together.
There are already two PR's #598 and #305.
There are already two PR's #598 and #305.
They won't approve those, it links to the guys profile and if wanted to screw everyone over its a single commit away.