[Haskell-cafe] Dockerfile for Yesod
Jonathan Paugh
jpaugh at gmx.us
Thu Dec 18 18:19:21 UTC 2014
Greetings, all
I'm brand new to Docker, and struggled to find resources specific to
Yesod. So, once I managed to piece together a Dockerfile, I decided to
share it. Hope it helps someone.
The Dockerfile is pasted at the bottom. It can be used by dropping it in
your Yesod application directory, and replacing "app" with the name of
your app.
If you're new to Docker like I was, cd to your Yesod app dir, and run
$ docker build --tag app-image .
$ docker run -d -p 3000:3000 app-image
to get started. Your web app should now be available at
http://localhost:3000
NB: The approot setting can make a profound and confusing difference if
it is mis-configured. I recommend temporarily setting approot to "" so
that it will use absolute (site-relative) urls instead of fully
specified ones.
Happy Holidays,
Jon
Dockerfile
-----------
FROM haskell:7.8
RUN cabal update
RUN apt-get update && apt-get install -y libpq5 libpq-dev
ADD ./app.cabal /opt/app/app.cabal
WORKDIR /opt/app
RUN cabal sandbox init
RUN cabal install --only-dependencies --max-backjumps=-1
--reorder-goals -j
ADD . /opt/app
RUN cabal build
RUN dist/build/db-import/db-import
ENV PATH /opt/app/.cabal-sandbox/bin:$PATH
EXPOSE 3000
CMD ["/opt/app/dist/build/app/app", "production", "-p", "3000"]
More information about the Haskell-Cafe
mailing list