• James Brock's avatar
    Dockerfile refactor · c8e4c06d
    James Brock authored
    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.
    c8e4c06d
README.md 8.63 KB