@@ -2,14 +2,18 @@ FROM debian:buster
2
2
3
3
ENV LANG C.UTF-8
4
4
5
+ # common haskell + stack dependencies
5
6
RUN apt-get update && \
6
7
apt-get install -y --no-install-recommends \
7
8
ca-certificates \
8
9
curl \
9
- dirmngr \
10
- g++ \
11
10
git \
11
+ gcc \
12
12
gnupg \
13
+ g++ \
14
+ libc6-dev \
15
+ libffi-dev \
16
+ libgmp-dev \
13
17
libsqlite3-dev \
14
18
libtinfo-dev \
15
19
make \
@@ -19,9 +23,10 @@ RUN apt-get update && \
19
23
zlib1g-dev && \
20
24
rm -rf /var/lib/apt/lists/*
21
25
22
- ARG GHC=8.10.4
23
- ARG DEBIAN_KEY=427CB69AAC9D00F2A43CAF1CBA3CBA3FFE22B574
26
+
27
+ # The cabal install process will also move away from the debian package once https://github.com/haskell/cabal/issues/7639 is resolved
24
28
ARG CABAL_INSTALL=3.4
29
+ ARG DEBIAN_KEY=427CB69AAC9D00F2A43CAF1CBA3CBA3FFE22B574
25
30
26
31
RUN export GNUPGHOME="$(mktemp -d)" && \
27
32
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${DEBIAN_KEY} && \
@@ -30,20 +35,39 @@ RUN export GNUPGHOME="$(mktemp -d)" && \
30
35
echo 'deb http://downloads.haskell.org/debian buster main' > /etc/apt/sources.list.d/ghc.list && \
31
36
apt-get update && \
32
37
apt-get install -y --no-install-recommends \
33
- cabal-install-${CABAL_INSTALL} \
34
- ghc-${GHC} && \
38
+ cabal-install-${CABAL_INSTALL} && \
35
39
rm -rf "$GNUPGHOME" /var/lib/apt/lists/*
36
40
41
+ ARG GHC=8.10.5
42
+ ARG GHC_RELEASE_KEY=88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4
43
+ # get from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
44
+ ARG GHC_RELEASE_SHA256=BC623C20CA4C5C18E952071BA14AA0CFC5C94D34219BFFAA615F7B491F376787
45
+
46
+ RUN cd /tmp && \
47
+ export GNUPGHOME="$(mktemp -d)" && \
48
+ curl -sSLO https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-x86_64-deb10-linux.tar.xz && \
49
+ curl -sSLO https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-x86_64-deb10-linux.tar.xz.sig && \
50
+ gpg --batch --keyserver keyserver.ubuntu.com --receive-keys ${GHC_RELEASE_KEY} && \
51
+ gpg --batch --trusted-key 588764FBE22D19C4 --verify ghc-$GHC-x86_64-deb10-linux.tar.xz.sig ghc-$GHC-x86_64-deb10-linux.tar.xz && \
52
+ tar xf ghc-$GHC-x86_64-deb10-linux.tar.xz && \
53
+ echo "$GHC_RELEASE_SHA256 ghc-$GHC-x86_64-deb10-linux.tar.xz" | sha256sum --strict --check && \
54
+ cd ghc-$GHC && \
55
+ ./configure --prefix /opt/ghc/$GHC && \
56
+ make install && \
57
+ find /opt/ghc/$GHC/ \( -name "*_p.a" -o -name "*.p_hi" \) -type f -delete && \
58
+ rm -rf "$GNUPGHOME" /tmp/*
59
+
37
60
ARG STACK=2.7.3
38
- ARG STACK_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
39
- ARG STACK_RELEASE_KEY=2C6A674E85EE3FB896AFC9B965101FF31C5C154D
61
+ ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
62
+ # get from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.sha256
63
+ ARG STACK_RELEASE_SHA256=A6C090555FA1C64AA61C29AA4449765A51D79E870CF759CDE192937CD614E72B
40
64
41
65
RUN export GNUPGHOME="$(mktemp -d)" && \
42
- gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${STACK_KEY} && \
43
66
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${STACK_RELEASE_KEY} && \
44
67
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz -o stack.tar.gz && \
45
68
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \
46
69
gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
70
+ echo "$STACK_RELEASE_SHA256 stack.tar.gz" | sha256sum --strict --check && \
47
71
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 && \
48
72
/usr/local/bin/stack config set system-ghc --global true && \
49
73
/usr/local/bin/stack config set install-ghc --global false && \
0 commit comments