docker-library / buildpack-deps

MIT License
450 stars 115 forks source link

Added nano to the scm templates #30

Closed moander closed 9 years ago

moander commented 9 years ago

This convenient editor adds only 600kb more data to the container :)

tianon commented 9 years ago

From the description of this tag: (https://registry.hub.docker.com/_/buildpack-deps/)

scm

This variant is based on curl, but also adds various source control management tools. As of this writing, the current list of included tools is bzr, git, hg, and svn. Intentionally missing is cvs due to the dwindling relevance it has (sorry CVS). This image is perfect for cases like the Java JDK, where downloading JARs is very common (hence the curl base still), but checking out code also becomes more common as well (compared to the JRE).

So, while nano can be useful for interactive container use, how does that fit into the use case for this tag? If we do include this, why would we include nano but not also vim or emacs?

It'd be handy sometimes to have an editor, but IMO if we don't keep a hard line for the types of things included in these images we'll end up ballooning very quickly.

moander commented 9 years ago

It is very handy to have a editor available when hacking on containers.

My opinion would be to include it in the curl tag instead, not to fit the tag description, but to make life easier.

The reason we could include nano but not also vim or emacs is because nano takes up virtually no space, while vim is 32mb and emacs is 116mb. Nano is 600kb.

tianon commented 9 years ago

Right, I agree it's handy. What I'm having trouble grappling with is the notion that it fits in the description and spirit of this particular image.

These same arguments could be made for including it directly in the base images themselves, but it's not included there either (because it's not part of the minimal set of packages for either Debian or Ubuntu).

moander commented 9 years ago

It is common practice to include a editor in the minimal images.

docker run -it ubuntu vi

docker run -it centos vi
tianon commented 9 years ago

Not explicitly though -- only as part of the distribution-specific "minimal set of packages".