# docker-heroku-haskell-stack **Repository Path**: mirrors_thoughtbot/docker-heroku-haskell-stack ## Basic Information - **Project Name**: docker-heroku-haskell-stack - **Description**: Docker image for deploying Haskell/Stack applications to Heroku - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-18 - **Last Updated**: 2025-12-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Heroku Haskell Stack Docker Image An image for deploying Haskell/Stack applications to Heroku. ## Usage Create your own `Dockerfile` inheriting from this image: ``` FROM thoughtbot/heroku-haskell-stack ``` Create a `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: ```sh #!/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.