# Create a Docker image that is ready to run the full Checker Framework tests,
# including building the manual, Javadoc, and the JDK, using JDK 11.

FROM ubuntu
MAINTAINER Michael Ernst <mernst@cs.washington.edu>

## Keep this file in sync with ../../docs/manual/troubleshooting.tex

# According to
# https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/:
#  * Put "apt-get update" and "apt-get install" and apt cleanup in the same RUN command.
#  * Do not run "apt-get upgrade"; instead get upstream to update.
RUN export DEBIAN_FRONTEND=noninteractive \
&& apt-get -qqy update \
&& apt-get -qqy install \
  ant \
  cpp \
  git \
  gradle \
  jq \
  libcurl3-gnutls \
  make \
  maven \
  mercurial \
  unzip \
  wget \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN export DEBIAN_FRONTEND=noninteractive \
&& apt-get -qqy update \
&& apt-get -qqy install \
  openjdk-11-jdk \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN export DEBIAN_FRONTEND=noninteractive \
&& apt-get -qqy update \
&& apt-get -qqy install \
  dia \
  hevea \
  imagemagick \
  jq \
  latexmk \
  librsvg2-bin \
  maven \
  python-pip \
  rsync \
  texlive-font-utils \
  texlive-fonts-recommended \
  texlive-latex-base \
  texlive-latex-extra \
  texlive-latex-recommended \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN pip install html5validator

RUN export DEBIAN_FRONTEND=noninteractive \
&& apt-get -qqy update \
&& apt-get -qqy install \
  autoconf \
  libasound2-dev \
  libcups2-dev \
  libfontconfig1-dev \
  libx11-dev \
  libxext-dev \
  libxrandr-dev \
  libxrender-dev \
  libxt-dev \
  libxtst-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN wget https://ci.adoptopenjdk.net/view/Dependencies/job/jtreg/lastSuccessfulBuild/artifact/jtreg-4.2-b14.tar.gz \
&& tar xzf jtreg-4.2-b14.tar.gz \
&& export JT_HOME=/jtreg

RUN git config --global user.email "you@example.com" \
&& git config --global user.name "Your Name"
