Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run rover supergraph compose on Alpine #546

Open
EverlastingBugstopper opened this issue May 17, 2021 · 0 comments
Open

Run rover supergraph compose on Alpine #546

EverlastingBugstopper opened this issue May 17, 2021 · 0 comments
Labels
feature 🎉 new commands, flags, functionality, and improved error messages

Comments

@EverlastingBugstopper
Copy link
Contributor

EverlastingBugstopper commented May 17, 2021

Currently, when building Rover for Alpine Linux, we disable the rover supergraph compose command. This is because the underlying composition function is written in JavaScript, and we use rusty_v8 under the hood to execute this function. Unfortunately, rusty_v8 is only built to dynamically link against glibc >= 2.18, which is incompatible with Alpine as it requires all binaries to be statically linked and built with musl-libc.

We want to support running all Rover commands on Alpine, this issue is meant to track discussion about possible paths towards that future.


Consider the Following


  • Bundle the JavaScript file that does composition with the musl build, and shell out to node directly to run composition
    • This one is kinda rough but might be the easiest option. The idea is that you'd require node to be installed as a runtime dependency.
    • Installing node on Alpine can be a bit of a hassle (though there are images for it)
  • Create a cloud function that executes composition and use that with the musl build
    • If we do this, we may want to add a --cloud flag to rover supergraph compose on other builds so anybody can run the same composition algorithm that the Apollo Graph Registry runs
  • Wait for rusty_v8 to build binaries for musl
    • We aren't sure how long this will take, but this would be by far the easiest option for us
  • Write a composition function in pure Rust
    • This is a big lift and won't be possible until we've made significant investments into the Rust GraphQL ecosystem
@EverlastingBugstopper EverlastingBugstopper added this to the Qx milestone May 17, 2021
@EverlastingBugstopper EverlastingBugstopper added the feature 🎉 new commands, flags, functionality, and improved error messages label May 17, 2021
@EverlastingBugstopper EverlastingBugstopper removed this from the Qx milestone Aug 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature 🎉 new commands, flags, functionality, and improved error messages
Projects
None yet
Development

No branches or pull requests

1 participant