FROM nvidia/cuda:11.0.3-cudnn8-runtime-ubuntu18.04

ENV PYTHON_VERSION "3.8.5"
ENV PYTHONPATH "/opt/prolothar-rule-mining"

RUN apt-get update && apt-get install -y \
  graphviz default-jdk gfortran liblapack-dev \
  build-essential libncurses5-dev libgdbm-dev libnss3-dev libssl-dev \
	libreadline-dev libffi-dev wget zlib1g-dev libbz2-dev \
  libgmp-dev libmpfr-dev libmpc-dev \
  && rm -rf /var/lib/apt/lists/*

RUN wget "https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz"
RUN tar -xzvf Python-${PYTHON_VERSION}.tgz
RUN rm Python-${PYTHON_VERSION}.tgz
WORKDIR Python-${PYTHON_VERSION}
RUN bash configure --enable-optimizations
RUN make
RUN make install
RUN update-alternatives --install /usr/bin/python python $(which python3) 10

WORKDIR $PYTHONPATH

ADD dependencies ${PYTHONPATH}/dependencies
ADD setup.py ${PYTHONPATH}/setup.py
ADD Makefile ${PYTHONPATH}/Makefile
RUN python -m pip install \
  --no-cache-dir \
  Cython
ADD requirements.txt $PYTHONPATH/requirements.txt
RUN python -m pip install \
  --no-cache-dir \
  -r ${PYTHONPATH}/requirements.txt

ADD experiments ${PYTHONPATH}/experiments
ADD prolothar_rule_mining ${PYTHONPATH}/prolothar_rule_mining

ADD README.md ${PYTHONPATH}/README.md
ADD version.txt ${PYTHONPATH}/version.txt
RUN make cython
RUN make compile3rdparties

ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8

ENTRYPOINT ["bash", "-c", "python ${PYTHONPATH}/experiments/rule_mining/comparison/run_comparison.py"]