YETUS-845. shrink the docker image by fixing cabal
Signed-off-by: Allen Wittenauer <aw@apache.org>
diff --git a/precommit/src/main/shell/test-patch-docker/Dockerfile b/precommit/src/main/shell/test-patch-docker/Dockerfile
index 7fe612f..3d0fd7c 100644
--- a/precommit/src/main/shell/test-patch-docker/Dockerfile
+++ b/precommit/src/main/shell/test-patch-docker/Dockerfile
@@ -37,12 +37,15 @@
######
# Install some basic Apache Yetus requirements
# some git repos need ssh-client so do it too
+# Adding libffi-dev for all the programming languages
+# that take advantage of it.
######
RUN apt-get -q update && apt-get -q install --no-install-recommends -y \
apt-transport-https \
ca-certificates \
curl \
git \
+ libffi-dev \
locales \
pkg-config \
rsync \
@@ -210,13 +213,18 @@
####
# Install shellcheck (shell script lint)
+# NOTE: A bunch of stuff is removed to shrink the size of the Docker image
+# Be very careful changing the code here, layer size may grow very large!
####
RUN apt-get -q update && apt-get -q install --no-install-recommends -y cabal-install \
&& apt-get clean \
- && rm -rf /var/lib/apt/lists/*
-RUN cabal update
-RUN cabal install ShellCheck \
- && cp -p /root/.cabal/bin/shellcheck /usr/local/bin/shellcheck
+ && rm -rf /var/lib/apt/lists/* \
+ && cabal update \
+ && cabal install -j ShellCheck \
+ && cp -p /root/.cabal/bin/shellcheck /usr/local/bin/shellcheck \
+ && apt remove -y ghc cabal-install \
+ && apt autoremove -y \
+ && rm -rf /root/.cabal
###
# Install hadolint