FROM debian:stretch-slim

ARG USER
ARG UID

# Confiugre docker user
#
COPY ./configure-docker-user.sh /usr/local/sbin/.
RUN chmod u+x /usr/local/sbin/configure-docker-user.sh
RUN configure-docker-user.sh ${USER} ${UID}
RUN rm /usr/local/sbin/configure-docker-user.sh

# Configure basic Orthanc *-dev packages
#
RUN apt-get -y update
RUN apt-get -y dist-upgrade
RUN apt-get -y install \
	build-essential cmake unzip mercurial \
	libsqlite3-dev libssl-dev libcurl4-openssl-dev \
	libjpeg-dev libpng-dev liblua5.1-0-dev libpugixml-dev \
	libgtest-dev libjsoncpp-dev uuid-dev libboost-all-dev \
	gosu

# Configure additional packages
#
RUN apt-get -y install \
	libdcmtk-dev doxygen emacs-nox gdb

# Configure Orthanc source code
#
RUN chgrp users /usr/src
RUN chmod g+ws /usr/src
WORKDIR /usr/src
RUN gosu ${USER} hg clone https://bitbucket.org/sjodogne/orthanc

# First build
#
RUN gosu ${USER} mkdir orthanc/build
WORKDIR /usr/src/orthanc/build
RUN gosu ${USER} cmake .. \
	-DSTATIC_BUILD=OFF \
	-DALLOW_DOWNLOADS=ON \
	-DUSE_SYSTEM_CIVETWEB=OFF \
	-DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON

# Configure Java 12
#
RUN mkdir -pv /opt/java/jdk
WORKDIR /opt/java/jdk
COPY ./jdk-12.0.1_linux-x64_bin.tar.gz /opt/java/jdk/.
RUN tar xf ./jdk-12.0.1_linux-x64_bin.tar.gz
RUN rm ./jdk-12.0.1_linux-x64_bin.tar.gz
RUN mv -v /opt/java/jdk/jdk-12.0.1 /opt/java/jdk/12.0.1
ENV JAVA_HOME=/opt/java/jdk/12.0.1
ENV PATH=$JAVA_HOME/bin:$PATH
ENV LD_LIBRARY_PATH=$JAVA_HOME/lib:$JAVA_HOME/lib/server

# Configure working directory
#
WORKDIR /opt/src

# Configure entrypoint
#
COPY ./docker-run.sh /usr/local/sbin/.
RUN chmod u+x /usr/local/sbin/docker-run.sh
ENTRYPOINT [ "docker-run.sh" ]
CMD [ "/bin/bash" ]
