-
Notifications
You must be signed in to change notification settings - Fork 390
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 running without kubernetes, just docker #1318
Comments
Collecting other issues that propose the same idea. https://discourse.jupyter.org/t/creating-a-new-binder-at-home-tool/ |
This issue has been mentioned on Jupyter Community Forum. There might be relevant details there: https://discourse.jupyter.org/t/building-a-the-littlest-binderhub/9824/1 |
Reposting from gitter: I think this makes a lot of sense in principle, but it concerns me a bit to expand the scope when we aren't keeping up with maintenance already. At the same time, any enthusiasm to contribute is beneficial and can help increase our maintenance support capacity. Counterpoint to myself: if we can run BinderHub with just docker, it will make local testing of most of the logic way easier, maybe improving maintenance of the whole thing. |
+1 We can also put the docker logic in a separate package, so we end up in a situation like we have with spawners. I use SimpleLocalProcessSpawner for testing, and that's so much nicer than requiring k8s for it. |
👍 to putting the Docker logic in a separate package. I think just the act of defining interfaces (e.g. BinderBuilder and BinderLauncher?) will improve maintainability of the code through clear documentation, at the moment there's an assumption you know a lot of Kubernetes concepts which can make the code hard to understand. |
This issue has been mentioned on Jupyter Community Forum. There might be relevant details there: |
WIP: #1353 but it was easier than expected to get a demo working 😺 |
@manics has made amazing progress on this, and it's possible :) I think there are a few more things we need to clean up.
|
It'd be nice if we could get most tests passing with both K8S and Docker since that reduces the barrier to contributing and testing PRs, and add a new |
This is neat. Is it be possible for the build to work with podman as well as Docker? |
@rcthomas It is 😄 See https://github.com/jupyterhub/binderhub/compare/master...manics:local-binder-local-hub-podman?expand=1 |
Oh maybe you mentioned that during the demo, sorry if I missed it! |
I mentioned in passing that I'd gotten it working with Podman but didn't give any details. Still proof-of-concept rather than something you'd want in production, but fun to play with locally! |
Proposed change
There's nothing inherent about binderhub that requires kubernetes. What it needs really is:
This is doable without kubernetes! If you look at where we use kubernetes, it is mostly only in build.py. We already support another build backend - FakeBuild.
I'd like to support an additional backend that lets you run binderhub on a single host, with docker + a jupyterhub with dockerspawner. This will make it much easier for people to set up 'small' binderhubs internally, and also exercise our abstraction for future users (who might want it on HPCs, for example).
Alternative options
Decide that we have a hard dependency on kubernetes, and other setups will not be supported. I don't think we should do this though.
Who would use this feature?
(Optional): Suggest a solution
Build
inbinderhub/binderhub/build.py
Line 18 in 00bd830
__init__
,submit
andstream_logs
DockerBuild
that implementsBuild
on top of the docker APIkubernetes
imports to a file, and make it conditional. This helps us makekubernetes
an optional dependency!The text was updated successfully, but these errors were encountered: