-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Support multi-arch image for base-notebook #1202
Conversation
Done for pandoc on arm64
@romainx this is so cool 👍 I do like the idea of being able to build many architectures, I think that's a big improvement. But I have one concern - I do not like a lot of code in Makefile. |
Maybe you have something in mind about how to change the build process to
make our scripts easier?
I'm a big fan of doit. While it has some quirks, it can yield quite robust
automation e.g. only do _this_ if _these_ files (or the output of
_this_command) change, and, being python, is generally easier to follow
than makefile syntax.
Scons and pants are also useful, but have additional opinions and syntax
that are somewhat less flexible... And have more dependencies than doit.
|
@mathbunnyru thanks for your feedback. It's only a first draft, my goal was to prototype it while keeping the existing build process. And yes the Makefile has become less maintainable with this addition. @bollwyvl I did not know doit, thanks for the idea. I will definitely have a look at it 👀 . You're right, if we put that in place the build process will need some improvement. One of the main reason is that it's a bit monolithic and will not scale well with this kind of evolutions. It becomes a drawback when it comes to add new images or features. The advantage of having a Makefile vs. full GitHub actions is to keep the ability to run things locally without GitHub. I think we need to keep this capability. I will have a look at doit. |
Cool!
One thing about GHA: it's rather hard to share data between multiple workflows, but between tasks is pretty decent. Getting all this to place nicely with GHA cache can be a little annoying, but is usually worth it... docker's a bear, and rate limits are no fun, so if important base images/layers can be cached, without caching the built product, things should work better than naively pulling every time. Something that helps a lot for this: a task's need/readiness to be run can be based on the partial contents of a parsed file: what I've ended up doing is parsing a Once outside of the task planning, it can be useful to just have Happy to help in any way! |
Hello, I'm closing this PR for now, since I think it's not the priority and since some prerequisites are not ready. We will see in the future if it's worth supporting multi-arch images. Best |
Hello,
I'm drafting a long PR to support several CPU architectures (multi-arch) for the
base-notebook
image:linux/amd64
(default),linux/arm64
,linux/ppc64le
. It sounds interesting to propose an official base Jupyter image for alternative CPU architectures like the raising ARM. Tools are now available to make it easy to do:And it works 🎉
Todo list
amd64
,arm64
andppc64le
Dockerfile.ppc64le
Pros
Dockerfile
to rule them all: the sameDockerfile
is used so there is no duplicationppc64le
supportCons
base-notebook
image, but could be extendedYour feedback is welcome as much on the usefulness of such a feature as on how to implement it.
Best