Is cleaner and less hacky than using Traitlets. We still
use traitlets for configuration, and accept a config file
for configuring detectors and what not.
Also implements allowing arbitrary commands from the commandline,
so we can do things like build and test a container!
- Looks for REQUIRE file in a repo, assumes is Julia
- Version pinned to v0.5.2 now - in the future, pick one
based on presence of Julia spec in REQUIRE
Fixes#23
- stages files, which previous binder did automatically and repo2docker does not
- installs required versions of ipykernel, jupyterhub, notebook
- registers kernelspecs explicitly
- launches notebook server with python3 env
- removes nb_conda_kernels, which was causing trouble
- sets JUPYTER_PATH so kernelspecs and extensions that were being installed into the python 2 env will still be picked up
Eventually, we should actually be passing the port number
inside the docker container, after verifying that it is available
on the host. We can deal with races by doing the same thing that
ipython notebook does.
Since we only expect this to be happening on users computers
when they are running this to test, host networking solves a
bunch of surprises around access to ports, as well as figuring
out which port the notebook should be listening on (since it
can just rely on the logic inside the notebook)
Dangerous when run on a cloud environment!