Having been building on top of repo2docker for a few months with treebeard I’m really impressed by the generality of the config (apt.txt, postBuild, start, etc.)
What strikes me though is the config is very docker-friendly (different files can be inserted into different layers) but could be more user-friendly.
Gonna keep this short because no doubt there are 100 reasons this has not already been done (I became curious after reading this), but why not compile the various config elements into a single yaml?
- short files e.g. apt.txt read nicer inline
postBuildwhich could be very short or very long can be broken into 1 or more scripts referenced by the config (and can be named more meaningfully)
startcould be replaced by runtime scripts which don’t have to remember to put
exec "$@"at the end
Having got about 30 projects running on binder I’d love an interface like this (inspired a bit by Dockerfile and GitHub actions):
apt: - docker labextensions: - voila buildtime: - install_extras.ipynb - echo hello runtime: - ./run_test
Please fire away with thoughts
edit: Probably a good time to note we have already been experimenting with using notebooks as build scripts (after chatting with some of the Netflix folk who love that notebooks provide an immutable record of inputs and outputs, a bit like