FROM python:3.11.2-bullseye

ARG proxy=""

ENV http_proxy ${proxy}
ENV https_proxy ${proxy}
ENV no_proxy ${no_proxy}
ENV PYTHONPATH "/opt/prolothar-constraint-acquisition"
ENV repository "pypi-alternative"
ENV FILEBROWSER_PORT 80
ENV WEBTERMINAL_PORT 7681

WORKDIR ${PYTHONPATH}

RUN apt-get update && apt-get install -y cmake make build-essential gcc-multilib g++ g++-multilib \
    libomp-dev openjdk-17-jre software-properties-common swi-prolog git libjson-c-dev libwebsockets-dev \
    libboost-all-dev \
    && rm -rf /var/lib/apt/lists/*

RUN curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
ADD start_services.sh start_services.sh

RUN [ -z "$http_proxy" ] && echo "do not set git proxy because ARG proxy not set" || git config --global http.proxy ${http_proxy}
RUN git clone --depth 1 --branch 1.7.3 https://github.com/tsl0922/ttyd.git && cd ttyd && mkdir build && cd build && cmake .. && make && make install && cd ${PYTHONPATH}

ADD Makefile ${PYTHONPATH}/Makefile

ADD thirdparties ${PYTHONPATH}/thirdparties
RUN make build_fast_downward
RUN make build_metric_ff
RUN chmod u+x ${PYTHONPATH}/thirdparties/approxmc/amd64-linux/approxmc
RUN export LD_LIBRARY_PATH=${projectPath}/thirdparties/approxmc/amd64-linux/
RUN chmod u+x ${PYTHONPATH}/thirdparties/meta-planning/src/meta_planning/util/planners/madagascar/M
RUN make build_planminer
RUN chmod u+x ${PYTHONPATH}/thirdparties/PlanMiner/bin/PlanMiner

ADD setup.py ${PYTHONPATH}/setup.py
ADD requirements.txt $PYTHONPATH/requirements.txt
ADD dependencies dependencies
RUN python -m pip install "Cython==3.0.0"
RUN python -m pip install scipy
RUN python -m pip install -r ${PYTHONPATH}/requirements.txt

ADD data ${PYTHONPATH}/data
ADD experiments ${PYTHONPATH}/experiments
ADD prolothar_ca ${PYTHONPATH}/prolothar_ca
ADD README.md ${PYTHONPATH}/README.md
ADD version.txt ${PYTHONPATH}/version.txt

RUN make cython

ENTRYPOINT ["bash", "start_services.sh"]