|
| 1 | +FROM debian:stretch |
| 2 | + |
| 3 | +ENV LANG C.UTF-8 |
| 4 | + |
| 5 | +RUN apt-get update && \ |
| 6 | + apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr && \ |
| 7 | + rm -rf /var/lib/apt/lists/* |
| 8 | + |
| 9 | +ARG GHC=9.0.1 |
| 10 | +ARG DEBIAN_KEY=427CB69AAC9D00F2A43CAF1CBA3CBA3FFE22B574 |
| 11 | +ARG CABAL_INSTALL=3.4 |
| 12 | +ARG STACK=2.5.1 |
| 13 | +ARG STACK_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442 |
| 14 | +ARG STACK_RELEASE_KEY=2C6A674E85EE3FB896AFC9B965101FF31C5C154D |
| 15 | + |
| 16 | +RUN export GNUPGHOME="$(mktemp -d)" && \ |
| 17 | + gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${DEBIAN_KEY} && \ |
| 18 | + gpg --batch --armor --export ${DEBIAN_KEY} > /etc/apt/trusted.gpg.d/haskell.org.gpg.asc && \ |
| 19 | + gpgconf --kill all && \ |
| 20 | + echo 'deb http://downloads.haskell.org/debian stretch main' > /etc/apt/sources.list.d/ghc.list && \ |
| 21 | + apt-get update && \ |
| 22 | + apt-get install -y --no-install-recommends \ |
| 23 | + cabal-install-${CABAL_INSTALL} \ |
| 24 | + curl \ |
| 25 | + g++ \ |
| 26 | + ghc-${GHC} \ |
| 27 | + git \ |
| 28 | + libsqlite3-dev \ |
| 29 | + libtinfo-dev \ |
| 30 | + make \ |
| 31 | + netbase \ |
| 32 | + openssh-client \ |
| 33 | + xz-utils \ |
| 34 | + zlib1g-dev && \ |
| 35 | + rm -rf "$GNUPGHOME" /var/lib/apt/lists/* |
| 36 | + |
| 37 | +RUN export GNUPGHOME="$(mktemp -d)" && \ |
| 38 | + gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_KEY} && \ |
| 39 | + gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${STACK_RELEASE_KEY} && \ |
| 40 | + curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz -o stack.tar.gz && \ |
| 41 | + curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \ |
| 42 | + gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \ |
| 43 | + tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 && \ |
| 44 | + /usr/local/bin/stack config set system-ghc --global true && \ |
| 45 | + /usr/local/bin/stack config set install-ghc --global false && \ |
| 46 | + rm -rf "$GNUPGHOME" /var/lib/apt/lists/* /stack.tar.gz.asc /stack.tar.gz |
| 47 | + |
| 48 | +ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/cabal/${CABAL_INSTALL}/bin:/opt/ghc/${GHC}/bin:$PATH |
| 49 | + |
| 50 | +CMD ["ghci"] |
0 commit comments