-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Enhancement (of new feature): JupyterLab docker image and documentation for manim and IPython #977
Enhancement (of new feature): JupyterLab docker image and documentation for manim and IPython #977
Conversation
I have not found a good solution of how to run our image on mybinder.org yet. Unfortunately, poetry is not yet supported (but might be, at some point: jupyterhub/repo2docker#972), but only Otherwise, we would have to create a new repository containing the setup for an appropriate environment (either via a Dockerfile or using conda and some apt-installs; both seem to be possible), and add the ipython notebook there. I'm not particularly in favor of this approach, but I don't really see another way around it right now. |
I don't know how things work there. Why not try for a build from PyPi packages? It contains a |
Have a look at https://mybinder.org/ -- It takes the link to a repository or gist, and then provides an environment based on what it finds there. Given that installation via poetry is not supported yet, I don't see a way other than
I don't see a better way yet; in particular I can't install via pypi or run custom commands without adding a root-level Dockerfile (which I want to avoid). |
I've played around a bit more; as long as poetry-based installations are not supported, there is not much we can do (from this repository). However, after slightly modifying the existing Dockerfile (with the changes from this PR), and a rather simple gist (see https://gist.github.com/behackl/725d956ec80969226b7bf9b4aef40b78), I can offer an interactive environment like this: https://mybinder.org/v2/gist/behackl/725d956ec80969226b7bf9b4aef40b78/HEAD -- I've just tested the deployed version, and it seems to work (cool stuff; I'm pretty excited about it!) If you are, for now, satisfied with such an approach, I'd recommend that we include a README badge to this binder environment and advertise it here and there in the documentation. Please try it out and let me know whether an approach like that would be okay with you. |
I've added some documentation and included an explicit hint that the worksheet is only temporary. If organization-level gists were possible, I would have used that one -- the only other way is a separate repository, which I sort of feel is overkill. I'm willing to change that, though, if any of you think that it would be more appropriate. This covers everything I wanted to do for this PR, it is ready for review. |
This is a side effect of how I needed to set things up: I needed a tagged docker image corresponding to the changes from this branch; I've named the tag The badge always displays the most recently pushed image; the same is currently shown on master -- and it will be fixed as soon as we merge any other PR (at which point the badge will display
There is one Dockerfile for manim which also includes the installation of jupyterlab; the old image was more minimal, this new one also contains a jupyterlab installation. And not included in this PR is the Dockerfile required for deploying the environment to binder, which is simply FROM manimcommunity/manim:jupyter
COPY --chown=manimuser:manimuser . /manim or so.
One binder-badge and one Docker-badge is the way to go.
I'm fine with reordering the badges in any way you see fit; would you simply commit your suggestion? |
Nice! |
@behackl did you miss out google collab link? |
After messing around to get a working version of binder up and running, I didn't want to invest a similar amount of energy into a colab worksheet. If you want to go ahead and prepare one, I'm happy to review it -- but I don't want to take care of it myself. |
Motivation
Follow-up to #943: documentation and docker image. The ultimate goal of this PR is to have a Jupyter notebook in, e.g.,
example_scenes
which can be run with one click (e.g. via a badge) in an interactive environment (Google colab / binder / suggestions welcome).Overview / Explanation for Changes
Work in progress.
Oneline Summary of Changes
Acknowledgements
Reviewer Checklist