blob: 4ac21f8b124390d5fe5f86d70762d6ce74897047 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
FROM debian:buster
ARG GHC_VERSION=
ARG USER=haskeller
ENV PATH="/home/${USER}/.cabal/bin:/home/${USER}/.ghcup/bin:${PATH}"
RUN echo "Dear Sir or Madam," && \
echo "" && \
echo "Welcome to Miguel's Docker Builder." && \
echo "We are building a fresh Haskell Environment." && \
echo "" && \
echo "This Build is parametrized as follows:" && \
echo "" && \
echo "GHC_VERSION = ${GHC_VERSION}" && \
echo "PATH = ${PATH}" && \
echo "USER = ${USER}" && \
echo "" && \
echo "[STEP 1 : INSTALLING DEPS VIA APT]" && \
echo "" && \
apt-get update && \
apt-get install -y \
curl \
xz-utils \
gcc \
make \
libtinfo5 \
libgmp-dev \
zlib1g-dev && \
echo "" && \
echo "[STEP 2 : CREATE USER & HOMEDIR]" && \
echo "" && \
useradd -ms /bin/bash ${USER} && \
echo "" && \
echo "[STEP 3 : DOWNLOAD AND INSTALL ghcup]" && \
echo "" && \
su ${USER} -c "mkdir -p ~/.ghcup/bin" && \
su ${USER} -c "curl https://gitlab.haskell.org/haskell/ghcup/raw/master/ghcup > ~/.ghcup/bin/ghcup" && \
su ${USER} -c "chmod +x ~/.ghcup/bin/ghcup" && \
echo "" && \
echo "[STEP 4 : INSTALL ghc VIA ghcup]" && \
echo "" && \
su ${USER} -c "ghcup install ${GHC_VERSION}" && \
su ${USER} -c "ghcup set ${GHC_VERSION}" && \
echo "" && \
echo "[STEP 5 : INSTALL & UPDATE cabal]" && \
echo "" && \
su ${USER} -c "ghcup install-cabal" && \
su ${USER} -c "cabal update" && \
su ${USER} -c "cabal new-install cabal-install" && \
echo "" && \
echo "[FINISHED! THANK YOU FOR YOUR PATIENCE]" && \
echo ""
USER ${USER}
ENV PATH="/home/${USER}/.cabal/bin:/home/${USER}/.ghcup/bin:${PATH}"
RUN cabal install ghcid
RUN cabal install hlint
|