summaryrefslogtreecommitdiff
path: root/docker_builds/docker_ghcup/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'docker_builds/docker_ghcup/Dockerfile')
-rw-r--r--docker_builds/docker_ghcup/Dockerfile57
1 files changed, 57 insertions, 0 deletions
diff --git a/docker_builds/docker_ghcup/Dockerfile b/docker_builds/docker_ghcup/Dockerfile
new file mode 100644
index 0000000..4ac21f8
--- /dev/null
+++ b/docker_builds/docker_ghcup/Dockerfile
@@ -0,0 +1,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