Grab CI configuration from master
[ghc.git] / .circleci / images / x86_64-linux-centos7 / Dockerfile
1 FROM centos:7
2
3 ENV LANG C.UTF-8
4
5 # Core build utilities
6 RUN yum -y install coreutils binutils which git make \
7     automake autoconf gcc perl python3 texinfo xz lbzip2 \
8     patch openssh-clients sudo zlib-devel sqlite \
9     ncurses-compat-libs gmp-devel ncurses-devel gcc-c++ findutils \
10     curl wget jq
11
12 # Python 3
13 RUN yum install -y https://centos7.iuscommunity.org/ius-release.rpm; \
14     yum install -y python34u python34u-libs
15
16 # Documentation tools
17 RUN yum -y install python-sphinx \
18     texlive texlive-latex texlive-xetex \
19     texlive-collection-latex texlive-collection-latexrecommended \
20     texlive-xetex-def texlive-collection-xetex \
21     python-sphinx-latex dejavu-sans-fonts dejavu-serif-fonts \
22     dejavu-sans-mono-fonts
23
24 # This is in the PATH when I ssh into the CircleCI machine but somehow
25 # sphinx-build isn't found during configure unless we explicitly 
26 # add it here as well; perhaps PATH is being overridden by CircleCI's
27 # infrastructure?
28 ENV PATH /usr/libexec/python3-sphinx:$PATH
29
30 # systemd isn't running so remove it from nsswitch.conf
31 # Failing to do this will result in testsuite failures due to
32 # non-functional user lookup (#15230).
33 RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
34
35 # Install GHC and cabal
36 RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb8-linux.tar.xz | tar -Jx
37 RUN cd /tmp/ghc-8.4.2 && ./configure --prefix=/opt/ghc/8.4.2
38 RUN cd /tmp/ghc-8.4.2 && make install
39 RUN mkdir -p /opt/cabal/bin
40 RUN cd /opt/cabal/bin && curl https://www.haskell.org/cabal/release/cabal-install-2.2.0.0/cabal-install-2.2.0.0-x86_64-unknown-linux.tar.gz | tar -zx
41 ENV PATH /opt/ghc/8.4.2/bin:/opt/cabal/bin:$PATH
42
43 # Create a normal user.
44 RUN adduser ghc --comment "GHC builds"
45 RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
46 USER ghc
47 WORKDIR /home/ghc/
48
49 # Install Alex, Happy, and HsColor with Cabal
50 RUN cabal update && \
51     cabal install hscolour happy alex
52 ENV PATH /home/ghc/.cabal/bin:$PATH
53
54 CMD ["bash"]