diff options
Diffstat (limited to 'docker_builds/docker_ghcup/Dockerfile')
| -rw-r--r-- | docker_builds/docker_ghcup/Dockerfile | 57 |
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 |
