Skip to content

Commit b7329d1

Browse files
committed
Use ghcup for 8.10/buster
1 parent d9bf04e commit b7329d1

File tree

1 file changed

+28
-42
lines changed

1 file changed

+28
-42
lines changed

8.10/buster/Dockerfile

Lines changed: 28 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,40 @@
1-
FROM debian:buster
1+
FROM debian:buster AS builder
22

33
ENV LANG C.UTF-8
44

5+
# install prerequisites
56
RUN apt-get update && \
67
apt-get install -y --no-install-recommends \
78
ca-certificates \
8-
curl \
9-
dirmngr \
10-
g++ \
11-
git \
12-
gnupg \
13-
libsqlite3-dev \
14-
libtinfo-dev \
15-
make \
16-
netbase \
17-
openssh-client \
18-
xz-utils \
19-
zlib1g-dev && \
9+
build-essential \
10+
libffi-dev \
11+
libffi6 \
12+
libgmp-dev \
13+
libgmp10 \
14+
libncurses-dev \
15+
libncurses5 \
16+
libtinfo5 \
17+
curl && \
2018
rm -rf /var/lib/apt/lists/*
2119

22-
ARG GHC=8.10.4
23-
ARG DEBIAN_KEY=427CB69AAC9D00F2A43CAF1CBA3CBA3FFE22B574
24-
ARG CABAL_INSTALL=3.4
20+
# install ghcup
21+
ARG GHCUP_VERSION=0.1.16.2
22+
RUN curl --proto '=https' --tlsv1.2 -sSf https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/x86_64-linux-ghcup-$GHCUP_VERSION > /usr/bin/ghcup && \
23+
chmod +x /usr/bin/ghcup
2524

26-
RUN export GNUPGHOME="$(mktemp -d)" && \
27-
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${DEBIAN_KEY} && \
28-
gpg --batch --armor --export ${DEBIAN_KEY} > /etc/apt/trusted.gpg.d/haskell.org.gpg.asc && \
29-
gpgconf --kill all && \
30-
echo 'deb http://downloads.haskell.org/debian buster main' > /etc/apt/sources.list.d/ghc.list && \
31-
apt-get update && \
32-
apt-get install -y --no-install-recommends \
33-
cabal-install-${CABAL_INSTALL} \
34-
ghc-${GHC} && \
35-
rm -rf "$GNUPGHOME" /var/lib/apt/lists/*
36-
37-
ARG STACK=2.7.3
38-
ARG STACK_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
39-
ARG STACK_RELEASE_KEY=2C6A674E85EE3FB896AFC9B965101FF31C5C154D
25+
# install cabal
26+
ARG CABAL_VERSION=3.4.0.0
27+
RUN ghcup install cabal -i /usr/bin $CABAL_VERSION
4028

41-
RUN export GNUPGHOME="$(mktemp -d)" && \
42-
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${STACK_KEY} && \
43-
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${STACK_RELEASE_KEY} && \
44-
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz -o stack.tar.gz && \
45-
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-
gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
47-
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 && \
48-
/usr/local/bin/stack config set system-ghc --global true && \
49-
/usr/local/bin/stack config set install-ghc --global false && \
50-
rm -rf "$GNUPGHOME" /var/lib/apt/lists/* /stack.tar.gz.asc /stack.tar.gz
29+
# install stack
30+
ARG STACK_VERSION=2.7.3
31+
RUN ghcup install stack -i /usr/bin $STACK_VERSION
5132

52-
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/cabal/${CABAL_INSTALL}/bin:/opt/ghc/${GHC}/bin:$PATH
33+
# install GHC into /opt/ghc
34+
ARG GHC_VERSION=8.10.6
35+
RUN ghcup install ghc -i /opt/ghc $GHC_VERSION
5336

54-
CMD ["ghci"]
37+
# Adjust PATH
38+
RUN echo 'export PATH="/opt/ghc/bin:$PATH"' >> /etc/profile.d/ghcup_path.sh && \
39+
chmod +x /etc/profile.d/ghcup_path.sh
40+
ENV PATH="/opt/ghc/bin:$PATH"

0 commit comments

Comments
 (0)