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

ENV PYTHON_VERSION "3.10.2"
ENV PYTHONPATH "/opt/prolothar-queue-mining"

RUN apt-get update && apt-get install -y \
  graphviz 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 libsqlite3-dev default-jdk \
  && 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 --enable-loadable-sqlite-extensions
RUN make
RUN make install
RUN update-alternatives --install /usr/bin/python python $(which python3) 10

ADD butools ${PYTHONPATH}/butools
ADD rnpp ${PYTHONPATH}/rnpp

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

ADD experiments ${PYTHONPATH}/experiments
ADD prolothar_queue_mining ${PYTHONPATH}/prolothar_queue_mining

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

ADD scripts /scripts

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

ENTRYPOINT ["bash", "-c", "python ${PYTHONPATH}/experiments/evaluation/run_reconstruction_single_queue_experiment.py"]