# select operating system FROM ubuntu:16.04 # install operating system packages RUN apt-get update -y && apt-get install git curl gettext unzip wget software-properties-common python python-software-properties dnsutils make maven gnuplot jq bc -y && \ apt-get upgrade -y ## add more packages, if necessary # install Java8 RUN add-apt-repository ppa:webupd8team/java -y && apt-get update && apt-get -y install openjdk-8-jdk-headless # install apache2 and UI #RUN add-apt-repository ppa:ondrej/php -y && apt-get update && apt-get install -y apache2 # Causes issues as tzdata is not installed and requires manual interaction! #RUN apt-get install -y php5.6 --allow-unauthenticated #RUN apt-get install -y php5.6-curl php5.6-xml && a2enmod rewrite #RUN git clone https://github.com/cloudiator/ui.git && rm -f /etc/apache2/sites-enabled/* && cp /opt/docker-init/ui.conf /etc/apache2/sites-enabled/ #RUN rm -rf /var/www/html/ui && mv ui /var/www/html/ && chown www-data:www-data /var/www/html/ui # use bpkg to handle complex bash entrypoints RUN curl -Lo- "https://raw.githubusercontent.com/bpkg/bpkg/master/setup.sh" | bash RUN bpkg install cha87de/bashutil -g ## add more bash dependencies, if necessary # add config, init and source files # entrypoint ADD init /opt/docker-init # sources RUN mkdir /opt/evaluation-orchestrator RUN mkdir /opt/evaluation-orchestrator/lib ADD src /opt/evaluation-orchestrator/src ADD pom.xml /opt/evaluation-orchestrator ADD plotting /opt/evaluation-orchestrator/plotting # install python plotting dependencies RUN export DEBIAN_FRONTEND=noninteractive; apt-get install -y tzdata RUN apt-get install python3 -y RUN apt-get install python3-tk -y RUN apt-get install python3-pip -y RUN pip3 install -r /opt/evaluation-orchestrator/plotting/requirements.txt RUN chmod +x /opt/evaluation-orchestrator/plotting/timeseries/plotSystemMetrics.py RUN chmod +x /opt/evaluation-orchestrator/plotting/timeseries/plotEvaluationMetrics.py RUN chmod +x /opt/evaluation-orchestrator/plotting/boxplots/plotService # configuration ADD conf /etc/docker-config RUN mkdir /opt/evaluation-orchestrator/conf # Logging dir RUN mkdir /var/log/evaluation-orchestrator/ # Download and build workload-API-client RUN cd /opt/evaluation-orchestrator/lib/ ; git clone -b icpe2019 https://omi-gitlab.e-technik.uni-ulm.de/mowgli/workload-API-client.git RUN cd /opt/evaluation-orchestrator/lib/workload-API-client ; mvn clean install -DskipTests # Download and build applicationdeployment-client RUN cd /opt/evaluation-orchestrator/lib/ ; git clone -b icpe2019 https://omi-gitlab.e-technik.uni-ulm.de/mowgli/dbms-catalogue-client.git RUN cd /opt/evaluation-orchestrator/lib/dbms-catalogue-client ; mvn clean install -DskipTests # Download and build maki-manager-client RUN cd /opt/evaluation-orchestrator/lib/ ; git clone -b icpe2019 https://omi-gitlab.e-technik.uni-ulm.de/mowgli/maki-manager-client RUN cd /opt/evaluation-orchestrator/lib/maki-manager-client ; mvn clean install -DskipTests # install maven deps RUN cd /opt/evaluation-orchestrator/ ; mvn install # result folder RUN mkdir /opt/evaluation-results/ # expose ports EXPOSE 8282 # start from init folder WORKDIR /opt/docker-init ENTRYPOINT ["./entrypoint"]