Heroku Haskell Stack Docker Image
An image for deploying Haskell/Stack applications to Heroku.
Create your own
Dockerfile inheriting from this image:
stack-bootstrap file containing large dependencies for your
application. For example:
alex classy-prelude-yesod happy yesod-bin yesod
These dependencies will be installed in their own Docker layer, so changing your cabal file will not cause them to be reinstalled every time.
Build your image:
docker build .
Here's a sample
bin/deploy script you can use in your Heroku project, assuming
you already have the heroku-docker Heroku plugin installed:
#!/bin/sh set -e if [ $# -ne 1 ]; then echo "Usage: ./bin/deploy (staging|production)" exit 1 fi if [ $(uname) = "Darwin" ]; then eval "$(docker-machine env default)" fi heroku docker:release --remote "$1" heroku open --remote "$1"
Running a script before building
Many applications need to do something before running the actual Stack
build, such as compiling CSS. You can put commands in
bin/pre-build and this
Dockerfile will run them before building the application.