Providing a clean working environment

To keep binder install requirements separate from other requirements, repo2docker will initially look for requirements files placed into a binder/ folder.

When the container is launched the user by default sees the $HOME directory listing which includes all the repo content.

If folk are using Binderhub as a self-service environment launcher rather than JupterHub (for example) it might make for a nicer user experience if the start directory can be defined.

MyBinder will already launch a user into a specified notebook, but the /tree is still set on $HOME. It might be useful if the Binder run notebook server could be started in an optionally specified directory (eg startDir=notebooks).

Where Binderhub is being used to deliver an ‘end-user’ rather than ‘development-test’ service over a repo, I wonder if it would also be useful to support clean-retain and/or clean-remove build files to run after postBuild and before start (config file order)?

Using a .git_ignore style syntax, clean-retain could identify which files in the repo to retain, and delete all the others (except hidden files / directories), and clean-remove could be used to explicitly declare files / directories that should be removed from the image.

A user could do this housekeeping themselves in postBuild but this would make a clearer step for novice users?