James Brock c8e4c06dd0 Dockerfile refactor
This Dockerfile gives us more control and isolation of dependencies
during development.

Base image `FROM ubuntu` instead of `fcpo/stack-build`.  We will use the
Stack and GHC on the host system, don't need it installed in the image.
The image is just for isolating the system package dependencies. Stack
will isolate the Haskell package dependencies (and the pip and npm
dependencies).

This gives is a single authority for the resolver, which is
the `stack.yaml`. We no longer need to manually make the `stack.yaml`
and `Dockerfile` resolvers agree.

Don't install `jupyter` in the Docker image, we'll use `stack --docker` to
install it later. This allows developers to choose the version of the jupyter
dependencies.

Add the `docker` section to `stack.yaml`, disabled by default.

__Motivating example:__ ipywidgets version 7 has changed its protocol.
We want to upgrade ihaskell-widgets, which works only on ipywidgets
version 6. To install ipywidgets version 6, we need to downgrade Python to 3.5.
We can use `stack --docker` to isolate a development environment in
which ihaskell-widgets is working, and then upgrade it to the latest
versions.
2019-06-03 14:27:31 +09:00
..
2019-06-03 14:27:31 +09:00