Jigsaw-Code / outline-server

Outline Server, developed by Jigsaw. The Outline Server is a proxy server that runs a Shadowsocks instance and provides a REST API for access key management.
https://getoutline.org/
Apache License 2.0
5.78k stars 781 forks source link

Raspberry Pi - Shadowbox Stuck Restarting, Install Script Freezes #862

Open imreallyliam opened 3 years ago

imreallyliam commented 3 years ago

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
phlinhng commented 3 years ago

Same issue here

imreallyliam commented 3 years ago

Should be noted that this issue occurs on Rasbpian as well

phlinhng commented 3 years ago

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"
mfld-pub commented 3 years ago

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

ghost commented 3 years ago

Same issue here on raspberry pi.

lomax commented 2 years ago

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 running install_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/

godshades commented 2 years ago

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

daniellacosse commented 2 years ago

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

lomax commented 2 years ago

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

ghost commented 2 years ago

Guys lets fix this issue together.

lomax commented 2 years ago

There are already two PR's #598 and #305.

ghost commented 2 years ago

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.