@@ -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,7 +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
26
+ # https://downloads.haskell.org/~cabal/cabal-install-3.6.0.0/ does not provide GPG signatures
27
+ # except for the SHA256SUMS.sig . Not sure what the best process here is, probably ask
28
+ # cabal to provide gpg signatures for the cabal-install tar files?
29
+
23
30
ARG DEBIAN_KEY=427CB69AAC9D00F2A43CAF1CBA3CBA3FFE22B574
24
31
ARG CABAL_INSTALL=3.4
25
32
@@ -30,10 +37,31 @@ RUN export GNUPGHOME="$(mktemp -d)" && \
30
37
echo 'deb http://downloads.haskell.org/debian buster main' > /etc/apt/sources.list.d/ghc.list && \
31
38
apt-get update && \
32
39
apt-get install -y --no-install-recommends \
33
- cabal-install-${CABAL_INSTALL} \
34
- ghc-${GHC} && \
40
+ cabal-install-${CABAL_INSTALL} && \
35
41
rm -rf "$GNUPGHOME" /var/lib/apt/lists/*
36
42
43
+ ARG GHC=8.10.7
44
+
45
+ # To be verified once https://gitlab.haskell.org/ghc/ghc/-/issues/20362 is resolved
46
+ # gpg --batch --keyserver hkps://pgp.mit.edu:443 --receive-keys 588764FBE22D19C4 && \
47
+ # gpg --batch --verify ghc-$GHC-x86_64-deb10-linux.tar.xz.sig ghc-$GHC-x86_64-deb10-linux.tar.xz && \
48
+
49
+ RUN cd /tmp && \
50
+ export GNUPGHOME="$(mktemp -d)" && \
51
+ curl -sSLO https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-x86_64-deb10-linux.tar.xz && \
52
+ curl -sSLO https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-x86_64-deb10-linux.tar.xz.sig && \
53
+ tar xf ghc-$GHC-x86_64-deb10-linux.tar.xz && \
54
+ cd ghc-$GHC && \
55
+ ./configure --prefix /opt/ghc/$GHC && \
56
+ make install && \
57
+ find /opt/ghc/lib -name "*.p_hi" -type f -delete && \
58
+ find /opt/ghc/lib -name "*_p.a" -type f -delete && \
59
+ rm -rf "$GNUPGHOME" /tmp/*
60
+
61
+ # ensure any user gets GHC on the path
62
+ RUN echo "export PATH=\" /opt/ghc/$GHC/bin:\$ PATH\" " >> /etc/profile.d/ghc_path.sh && \
63
+ chmod +x /etc/profile.d/ghc_path.sh
64
+
37
65
ARG STACK=2.7.3
38
66
ARG STACK_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
39
67
ARG STACK_RELEASE_KEY=2C6A674E85EE3FB896AFC9B965101FF31C5C154D
0 commit comments