Commit 472f1eac authored by Ryan Scott's avatar Ryan Scott

Make the linters Dockerfile "extend" the x86_64-linux-deb9 one

parent cab80b7f
Pipeline #10247 failed with stages
in 60 minutes and 46 seconds
FROM debian:stretch
ENV LANG C.UTF-8
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN echo 'deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main' > /etc/apt/sources.list.d/ghc.list
ENV LANG C.UTF-8
RUN apt-get update -qq; apt-get install --no-install-recommends -qy \
gnupg sudo git python3 dirmngr ca-certificates curl xz-utils \
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F6F88286 \
&& apt-get update \
&& apt-get install --no-install-recommends -qy python3-pip \
RUN apt-get update -qq; apt-get install --no-install-recommends -qy gnupg dirmngr \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# http://downloads.haskell.org/debian/
RUN echo 'deb http://downloads.haskell.org/debian stretch main' > /etc/apt/sources.list.d/ghc.list
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA3CBA3FFE22B574
# Core build utilities
RUN apt-get update -qq && apt-get install --no-install-recommends -qy \
zlib1g-dev libtinfo-dev libsqlite3-0 libsqlite3-dev libgmp-dev \
ca-certificates g++ git make automake autoconf gcc \
perl python3 texinfo xz-utils lbzip2 bzip2 patch openssh-client sudo time \
jq wget curl \
# For source distributions
xutils-dev \
# DWARF libraries
libdw1 libdw-dev \
# For nofib
valgrind \
# Documentation tools
python3-sphinx texlive-xetex texlive-latex-extra texlive-binaries texlive-fonts-recommended lmodern texlive-generic-extra \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN pip3 install mypy==0.701
WORKDIR /tmp
# Install GHC and cabal
......@@ -33,28 +47,37 @@ ENV CABAL_VERSION 2.4.1.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal
RUN mkdir -p /opt/local/bin
# LLVM
ENV LLVM_DIR /opt/llvm
ENV LLVM_VERSION 7.0.0
ENV PATH $LLVM_DIR/bin:$PATH
RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-16.04.tar.xz | tar -xJC .; \
mkdir $LLVM_DIR && \
cp -R clang+llvm*/* $LLVM_DIR && \
rm -R clang+llvm* && \
llc --version
# Create a normal user.
RUN adduser ghc --gecos "GHC builds" --disabled-password
RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
USER ghc
WORKDIR /home/ghc/
# Build Haskell tools
RUN cabal v2-update && \
cabal v2-install hscolour happy alex --constraint 'happy ^>= 1.19.10'
ENV PATH /home/ghc/.cabal/bin:$PATH
# Build Linting tools
RUN apt-get update -qq; apt-get install --no-install-recommends -qy python3-pip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN pip3 install mypy==0.701
RUN cabal update
RUN git clone https://gitlab.haskell.org/ghc/git-haskell-org-hooks && \
git -C git-haskell-org-hooks checkout 0df6168bdc1c52f9ebfd98a7b424e716f131330d
WORKDIR /home/ghc/git-haskell-org-hooks
RUN cabal install
USER root
RUN mv /home/ghc/.cabal/bin/* /opt/local/bin/
RUN rm -rf /home/ghc/*
USER ghc
WORKDIR /home/ghc
CMD ["bash"]
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment