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

Base notebook stack #209

Merged
merged 3 commits into from
May 27, 2016
Merged

Base notebook stack #209

merged 3 commits into from
May 27, 2016

Conversation

parente
Copy link
Member

@parente parente commented May 14, 2016

Continuing the discussion from #205. Not ready to merge. Includes #208 for most up to date size comparison.

With this definition, tiny-notebook is about ~1/5th the size of minimal-notebook.

jupyter/tiny-notebook         latest    1703acbd84d4    Less than a second ago   416.9 MB
jupyter/minimal-notebook      latest    4a0d21eb14ef    15 minutes ago           1.869 GB

Decisions for discussion:

  • tiny-notebook includes the notebook config and startup scripts that currently enable the various configuration features (e.g., USE_HTTP, PASSWORD, etc.) in minimal-notebook and, by inheritance, all of the other images. I think it's important to include these in tiny-notebook for consistency with the other docker-stacks images. Otherwise, what's the point of starting from a docker-stacks image? A developer can just grab any OS image, add python, and pip/conda install notebook.
  • tiny-notebook does install jupyterhub and the correspoding start-singleuser script. (+18 MB, included in the size reported above
  • tiny-notebook does not install build-essentials or python-dev at a savings of 200 MB and a cost of being able to build C extensions out of box.

Other notes:

  • terminado is now an explicit prereq to notebook 4.2 according to conda so I removed the explicit mention of it from the notebook install line.

@parente parente force-pushed the tiny-notebook branch 2 times, most recently from 3409e56 to 57fd28e Compare May 14, 2016 03:28
@parente
Copy link
Member Author

parente commented May 17, 2016

@gimoh, @fperez any comments on this definition of "tiny"?

@willingc
Copy link
Member

@parente How much space does it add for vim and git?

On another note, have you tried Alpine yet? While I believe we should have a Debian tiny, it might be worth playing around with this at some point. It may be helpful for Raspberry Pi and education.

@parente
Copy link
Member Author

parente commented May 17, 2016

How much space does it add for vim and git?

Will check.

On another note, have you tried Alpine yet? While I believe we should have a Debian tiny, it might be worth playing around with this at some point. It may be helpful for Raspberry Pi and education.

I tried alpine at one point. It's tens of MB smaller to start, but once you lob in miniconda and such, the savings over debian really doesn't matter much in the desktop / cloud realm. That said, for new use cases, I agree another micro stack might still make sense.

@parente
Copy link
Member Author

parente commented May 18, 2016

@willingc, with git and vim:

jupyter/tiny-notebook              latest              cd85f25a2c47        Less than a second ago   505.9 MB

Nearly 100 MB increase. I think they should be excluded here since they're not required dependencies for the jupyter components to work.

@willingc
Copy link
Member

@parente agreed. Thanks for checking.

@minrk
Copy link
Member

minrk commented May 18, 2016

I do feel a bit odd having tiny < minimal. If I had my druthers, I'd rename 'minimal' to 'base' or 'basic' and then have 'minimal' be the truly minimal stack, but I don't know who might be relying on minimal being not-so-minimal.

tiny-notebook does install jupyterhub and the correspoding start-singleuser script. (+18 MB, included in the size reported above

Installing JupyterHub is not required to get the single-user script. In particular, it pulls in unused dependencies. This could be simplified to just fetch the script directly:

wget https://raw.githubusercontent.com/jupyterhub/jupyterhub/0.6.1/scripts/jupyterhub-singleuser

@parente
Copy link
Member Author

parente commented May 18, 2016

I do feel a bit odd having tiny < minimal. If I had my druthers, I'd rename 'minimal' to 'base' or 'basic' and then have 'minimal' be the truly minimal stack, but I don't know who might be relying on minimal being not-so-minimal.

I agree the naming is not a great idea, but I'm worried about the ~5000 pulls of the minimal-notebook:

https://gist.github.com/parente/316d5c242aeb484484c8

I'd certainly be peeved if one day I decided to go with the latest minimal-notebook and found that it changed from "minimal image with a fully functioning notebook to get work done" to "minimal image with a minimally functioning notebook for use as a base image".

Maybe this new image should be called base-notebook, since it is at the top of the hierarchy and is meant to serve as a base Docker image, and minimal-notebook stays as is?

Installing JupyterHub is not required to get the single-user script.

Yes, except @jtyberg felt yanking one file out of GitHub felt messy in the original PR (#185 (comment)).

@willingc
Copy link
Member

@parente @minrk Good points. IMHO 'base' is an improvement over 'tiny'. Probably makes sense to add a hierarchy to the Docker readme: base < minimal < ...

@parente
Copy link
Member Author

parente commented May 18, 2016

@willingc I'll definitely update the inheritance diagram in the root README once we settle on the names.

@gimoh
Copy link

gimoh commented May 23, 2016

Fantastic, it's looking really good now! Outstanding, thanks :-)

@parente parente changed the title [WIP] Tiny notebook stack [WIP] Base notebook stack May 27, 2016
(c) Copyright IBM Corp. 2016
(c) Copyright IBM Corp. 2016
(c) Copyright IBM Corp. 2016
@parente parente changed the title [WIP] Base notebook stack Base notebook stack May 27, 2016
@parente
Copy link
Member Author

parente commented May 27, 2016

Rebased. I think this can go in now.

@parente parente merged commit f302823 into jupyter:master May 27, 2016
@parente
Copy link
Member Author

parente commented May 27, 2016

Starting the build for this.

@parente
Copy link
Member Author

parente commented May 27, 2016

Getting anaconda over capacity and Fetching package metadata: ....Error: Could not find anaconda.org user r errors. Will keep retrying.

@parente parente mentioned this pull request May 27, 2016
@parente parente deleted the tiny-notebook branch March 26, 2018 01:20
rochaporto pushed a commit to rochaporto/docker-stacks that referenced this pull request Jan 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants