Skip to content

Instantly share code, notes, and snippets.

@maerten
Created June 15, 2016 14:50
Show Gist options
  • Save maerten/64fe17e019d7090c96788b5775c3efe8 to your computer and use it in GitHub Desktop.
Save maerten/64fe17e019d7090c96788b5775c3efe8 to your computer and use it in GitHub Desktop.
Dockerfile.haskell-ghc8-stack-base
#
# www.surveyparrot.com docker base image, used for projects with GHC8 / stack / servant
#
# This image takes a while to build, so the recommended way is to use it as a base-image,
# occasionally adding your projects' dependencies and rebuilding this base image.
#
# Build with:
#
# $ docker build -t haskell-ghc8-stack-base -f Dockerfile.haskell-ghc8-stack-base .
#
# Then in your projects Dockerfile use:
#
# FROM haskell-ghc8-stack-base:latest
#
FROM debian:jessie
MAINTAINER Maarten Veenstra <[email protected]>
USER root
ENV LANG en_US.UTF-8
ENV DEBIAN_FRONTEND noninteractive
# Dependencies
RUN apt-get update && apt-get install -y software-properties-common
# MariaDB key
RUN apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
RUN add-apt-repository 'deb http://ftp.nluug.nl/db/mariadb/repo/10.0/debian jessie main'
RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends \
bzip2 \
ca-certificates \
curl \
gcc \
libc6-dev \
libgmp-dev \
libgmp10 \
make \
patch \
zlib1g-dev \
llvm \
lib32z1-dev \
libpcre3-dev \
libmariadbclient-dev \
libssl-dev \
zlib1g-dev \
wget
# FPcomplete key
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 575159689BEFB442
RUN echo 'deb http://download.fpcomplete.com/debian jessie main'| tee /etc/apt/sources.list.d/fpco.list
# Install Haskell stack
RUN apt-get update && apt-get install stack -y
ENV PATH /root/.local/bin:$PATH
RUN apt-get install pkg-config
RUN stack update && stack upgrade && stack --resolver nightly setup
#
# preload some packages for faster project builds
#
# (You can add and remove any packages to optimize for image size / build speed)
RUN stack --resolver nightly install bytestring \
directory \
http-types \
js-jquery \
lucid \
random \
time \
transformers \
transformers-compat \
wai \
wai-extra \
warp \
text \
mtl \
resourcet \
monad-logger \
http-media \
case-insensitive \
wai-middleware-static \
wai-app-static \
containers \
network-uri \
unordered-containers \
utf8-string \
cookie
RUN stack --resolver nightly install \
Diff \
HUnit \
QuickCheck \
asn1-encoding \
asn1-parse \
asn1-types \
attoparsec \
bifunctors \
blaze-builder \
blaze-textual \
bytestring-builder \
charset \
comonad \
contravariant \
control-monad-omega \
distributive \
doctest \
double-conversion \
expiring-cache-map \
filemanip \
ghc-paths \
hourglass
RUN stack --resolver nightly install hspec \
hspec-core \
hspec-discover \
hspec-expectations \
http-client \
http-media \
js-jquery \
language-ecmascript \
lucid \
parallel \
psqueues \
quickcheck-instances \
quickcheck-io \
reflection \
resource-pool \
scientific \
semigroups \
setenv \
should-not-typecheck \
streaming-commons \
string-conversions \
system-filepath \
tagshare \
testing-feat \
tf-random \
tls \
uniplate \
url \
vault \
void
RUN stack --resolver nightly install wai \
wai-logger \
wai-middleware-static \
with-location \
wl-pprint \
x509 x509-store x509-system x509-validation \
auto-update base-compat control-monad-omega \
file-embed js-jquery cryptonite split \
StateVar tagged blaze-builder blaze-markup blaze-html \
parsec network-uri psqueues
RUN stack --resolver nightly install bytestring-conversion \
control-monad-omega \
entropy \
bcrypt \
adjunctions \
kan-extensions \
lens
RUN stack --resolver nightly install haskell-lexer \
js-jquery \
happy \
network-info \
pretty-show \
safe \
simple-sendfile
RUN stack --resolver nightly install cereal \
base64-string \
data-default-instances-base \
data-default-instances-containers \
data-default-instances-dlist \
data-default-instances-old-locale \
data-default \
mime-mail \
HaskellNet \
socks
RUN stack --resolver nightly install \
HaskellNet \
HaskellNet-SSL \
MonadRandom \
StateVar \
adjunctions \
aeson \
aeson-compat \
aeson-pretty \
ansi-terminal \
ansi-wl-pprint \
appar \
asn1-encoding \
asn1-parse \
asn1-types \
async \
attoparsec \
base-compat \
base-orphans \
base-unicode-symbols \
base16-bytestring \
base64-bytestring \
base64-string
RUN stack --resolver nightly install \
bcrypt \
bifunctors \
blaze-builder \
blaze-html \
blaze-markup \
blaze-textual \
byteable \
byteorder \
bytestring-builder \
bytestring-conversion \
case-insensitive \
cereal \
charset \
cmdargs \
comonad \
conduit \
conduit-extra \
connection \
contravariant \
control-monad-omega \
cookie \
cryptohash \
cryptonite
RUN stack --resolver nightly install \
data-default \
data-default-class \
data-default-instances-base \
data-default-instances-containers \
data-default-instances-dlist \
data-default-instances-old-locale \
distributive \
dlist \
double-conversion \
easy-file \
entropy \
exceptions \
fail \
fast-logger \
file-embed \
free \
happy \
hashable \
haskell-lexer
RUN stack --resolver nightly install \
hex \
hourglass \
http-api-data \
http-date \
http-media \
http-types \
http2 \
iproute \
kan-extensions \
lens \
lens-aeson \
lifted-base \
lucid \
memory \
mime-mail \
mime-types \
mmorph \
monad-control \
monad-logger \
monad-loops
RUN stack --resolver nightly install \
mtl \
nats \
network \
network-info \
network-uri \
old-locale \
old-time \
optparse-applicative \
parallel \
parsec \
passwords \
path-pieces \
pcre-light \
pem
RUN stack --resolver nightly install \
prelude-extras \
pretty-show \
primitive \
profunctors \
psqueues \
random \
reflection \
resource-pool \
resourcet \
safe \
scientific \
semigroupoids \
semigroups \
servant \
servant-docs \
servant-lucid \
servant-server \
silently \
simple-sendfile
RUN stack --resolver nightly install \
socks \
split \
stm \
stm-chans \
streaming-commons \
string-conversions \
stringsearch \
syb \
system-filepath \
tagged \
text \
time-locale-compat \
tls \
transformers-base \
transformers-compat \
unix-compat \
unix-time \
unordered-containers
RUN stack --resolver nightly install \
utf8-string \
uuid \
uuid-types \
vault \
vector \
void \
wai \
wai-app-static \
wai-cors \
wai-extra \
wai-logger \
warp \
word8 \
x509 \
x509-store \
x509-system \
x509-validation \
zlib
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment