12345678910111213141516171819202122232425262728293031323334353637 |
- FROM haskell:7.10
- MAINTAINER Greg Weber
- # Intended as a development environment
- #
- # docker build -t yesod .
- # docker run --rm -i -t -v `pwd`:/home/haskell yesod /bin/bash
- # stackage update
- #
- RUN apt-get update && apt-get install sudo \
- # ssl stuff that you may find useful
- && apt-get install -y libssl-dev ca-certificates libcurl4-openssl-dev \
- # stackage-cli uses git. authbind can be useful for exposing ports
- && apt-get install -y git authbind \
- && apt-get clean
- # run as a user named "haskell"
- RUN useradd -m -d /home/haskell -s /bin/bash haskell
- RUN mkdir -p /etc/sudoers.d && echo "haskell ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/haskell && chmod 0440 /etc/sudoers.d/haskell
- ENV HOME /home/haskell
- WORKDIR /home/haskell
- USER haskell
- ENV LANG C.UTF-8
- ENV LC_ALL C.UTF-8
- # install stackage binaries to /opt/stackage
- RUN sudo mkdir -p /opt/stackage/bin
- ENV PATH /opt/stackage/bin:.cabal-sandbox/bin:.cabal/bin:$PATH:./
- RUN sudo chown haskell:haskell /opt/stackage/bin
- RUN cabal update \
- && cabal install stackage-update && stackage-update \
- && cabal install stackage-install \
- && stackage-install stackage-cli stackage-cabal stackage-sandbox stackage-upload \
- && mv /home/haskell/.cabal/bin/* /opt/stackage/bin/ \
- && rm -r /home/haskell/.cabal
|