You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It has become quite clear that there is high demand for running Rover on Alpine in production images due to Alpine's lightweight nature. Unfortunately with the introduction of rover supergraph compose, we stopped building fully static binaries for Linux since, well, rusty_v8does not have prebuilt binaries for x86_64-unknown-linux-musl.
We want you to be able to use Rover in your Alpine images, but the constraints have forced our hand to a less-than-perfect solution. We've decided on first steps, but discussion is open on future steps!
First steps
Our first step will be to build binaries for x86_64-unknown-linux-musl that do not include rover supergraph compose.
This includes the following work:
Create a cargo feature for rover supergraph compose.
If the feature is not enabled, running rover supergraph compose should error with:
$ rover supergraph compose --config ./supergraph.ymlerror: You cannot run `rover supergraph compose` with this binary. You will need to install Rover on a machine that includes `glibc >= vX.X`
Add a step to our release GitHub action to build for x86_64-unknown-linux-musl with that feature disabled
Update the curl installer to install the musl build if glibc does not exist
Update the npm installer to install the musl build if glibc does not exist
Possible future steps
Bundle the JavaScript file that does composition with the musl build, and shell out to node directly to run composition
Create a cloud function that executes composition and use that with the musl build
A PR for first steps will come shortly, but it won't close this issue until we decide on possible future steps. If and when that future is decided, we will create a new issue and close this one.
The text was updated successfully, but these errors were encountered:
Random drive-by comment: This is a great and pragmatic solution! I love it!
Would it be reasonable for the curl installer (and maybe the npm installer) to print something in this case like "warning: you appear to be running on a platform without glibc, which is required to support the rover supergraph compose command. Installing a version of rover without support for that command." ?
It has become quite clear that there is high demand for running Rover on Alpine in production images due to Alpine's lightweight nature. Unfortunately with the introduction of
rover supergraph compose
, we stopped building fully static binaries for Linux since, well,rusty_v8
does not have prebuilt binaries forx86_64-unknown-linux-musl
.We want you to be able to use Rover in your Alpine images, but the constraints have forced our hand to a less-than-perfect solution. We've decided on first steps, but discussion is open on future steps!
First steps
Our first step will be to build binaries for
x86_64-unknown-linux-musl
that do not includerover supergraph compose
.This includes the following work:
rover supergraph compose
.If the feature is not enabled, running
rover supergraph compose
should error with:x86_64-unknown-linux-musl
with that feature disabledglibc
does not existglibc
does not existPossible future steps
musl
build, and shell out tonode
directly to run compositionmusl
buildrusty_v8
to build binaries formusl
A PR for first steps will come shortly, but it won't close this issue until we decide on possible future steps. If and when that future is decided, we will create a new issue and close this one.
The text was updated successfully, but these errors were encountered: