fermyon / installer

Fermyon Installer
https://fermyon.dev
Apache License 2.0
156 stars 38 forks source link

local: Add bindle release build for better Linux compat #59

Closed lann closed 2 years ago

lann commented 2 years ago

ref #58

lann commented 2 years ago

These binaries seem to work. They could just be checked in to the repo, or they could be artifacts on the github release.

vdice commented 2 years ago

A thought: If we added Docker as a dep for the local installer, we could run bindle via the container from the Dockerfile in this PR (bindle.nomad switches to use the docker driver). WDYT? Decided no go for this use case.

lann commented 2 years ago

This works for me locally

vdice commented 2 years ago

This worked well for me (on Mac) -- so, a test to ensure default behavior is maintained. I believe @lann also tested on a Linux box to vet the bindle-server URL. Wondering if @bacongobbler will have a chance to try this out and sign off?

lann commented 2 years ago

Would be nice if @itowlson could test too on Ye Olde Linuks

itowlson commented 2 years ago

Fails on 18.04 LTS, I'm afraid.

With no diagnostics, which is vexing - our script keeps retrying until timeout, but Nomad itself seems to provide absolutely no logs of process startup errors - surely they must be there somewhere?! Anyway, it works for me on 20.04 so I assume it's Hamster Stonehenge issues rather than WSL issues, but can't confirm for certain...!

lann commented 2 years ago

Dang, I thought I had tested on an 18.04 image, but someone on Discord had issues on Mint 19.3 which is based on 18.04. The build uses debian buster which I thought would make the binary compatible with 18.04 but clearly I was mistook. In that discord thread we discussed the possibility of even staticallier-linking against musl libc for better portability, but a quick experiment replacing the build base image lead to bizarro segfaults in the build process.

lann commented 2 years ago

Nomad itself seems to provide absolutely no logs of process startup errors - surely they must be there somewhere?!

This incantation seems to work; at least it gives you an exit code...

$ nomad job status bindle
[...SNIP...]
Allocations
ID        Node ID   Task Group  Version  Desired  Status  Created    Modified
bd840c46  0659ac07  bindle      0        run      failed  1m3s ago   43s ago
e68e94b8  0659ac07  bindle      0        stop     failed  1m49s ago  1m3s ago

$ nomad alloc status bd840c46
[...SNIP...]
Recent Events:
Time                       Type             Description
2022-06-27T11:12:53-04:00  Restarting       Task restarting in 17.645456123s
2022-06-27T11:12:53-04:00  Terminated       Exit Code: 2
2022-06-27T11:12:53-04:00  Started          Task started by client
itowlson commented 2 years ago

Yeah but I wanted stderr to figure out why it exited with code 2.