# SPATKIN docker file.
#
# Building the image
# ------------------
# $ docker build --build-arg user=$USER --build-arg uid=$(id -u) --build-arg gid=$(id -g) -t spatkin .
#
# Running a container
# -------------------
# $ xauth nlist $DISPLAY | sed -e 's/^..../ffff/' | xauth -f /tmp/.docker.xauth nmerge -
# $ docker run -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /tmp/.docker.xauth:/tmp/.docker.xauth:rw -e XAUTHORITY=/tmp/.docker.xauth -v $HOME:$HOME spatkin 
#
# Version
# -------
# Tue May 30 00:00:44 CEST 2023

FROM ubuntu:18.04

MAINTAINER mkochan@ippt.pan.pl

RUN apt-get update && \
    apt-get -y --no-install-recommends install \
          ca-certificates wget cmake make patch g++ gcc \
          libbz2-dev libcairomm-1.0-dev libsigc++-2.0-dev \
          qtbase5-dev qtbase5-dev-tools qttools5-dev libqt5svg5-dev libqt5opengl5-dev

RUN update-ca-certificates

RUN (mkdir -p /opt/local/src  &&  \
     cd /opt/local/src  &&  \
     wget http://pmbm.ippt.pan.pl/software/spatkin/release/spatkin-1.0.0-source.tar.gz  &&  \
     tar xfz spatkin-1.0.0-source.tar.gz  &&  \
     cd spatkin-1.0.0-source/build  &&  \
     cmake ../contrib -Wno-dev -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++  &&  \
     make  &&  \
     rm -f CMakeCache.txt  &&  \
     cmake .. -Wno-dev -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_INSTALL_PREFIX=/opt/local/  &&  \
     make -j2  &&  \
     make install  &&  \
     mkdir -p /opt/local/lib  &&  \
     cp ./contrib/qwt-6.1.2_install_sysroot/lib/libqwt*.so* \
        ./contrib/boost_1_55_0_install_sysroot/lib/libboost*.so* /opt/local/lib  &&  \
     rm -fR ../build/*)

RUN apt-get -y purge wget cmake gcc g++ && echo "Y" | apt autoremove -f

ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/local/lib

ARG user
ARG uid
ARG gid

ENV USERNAME ${user}
RUN useradd -m $USERNAME && \
        echo "$USERNAME:$USERNAME" | chpasswd && \
        usermod --shell /bin/bash $USERNAME && \
        usermod  --uid ${uid} $USERNAME && \
        groupmod --gid ${gid} $USERNAME
USER ${user}

WORKDIR /home/${user}

CMD /opt/local/bin/Spatkin
