Dockerfile 3.17 KB
Newer Older
1 2 3 4
# select operating system
FROM ubuntu:16.04

# install operating system packages 
5
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 && \
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
    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
32
ADD plotting /opt/evaluation-orchestrator/plotting
33

34 35
# install python plotting dependencies
RUN export DEBIAN_FRONTEND=noninteractive; apt-get install -y tzdata
36 37 38 39
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
40 41
RUN chmod +x /opt/evaluation-orchestrator/plotting/timeseries/plotSystemMetrics.py
RUN chmod +x /opt/evaluation-orchestrator/plotting/timeseries/plotEvaluationMetrics.py
42
RUN chmod +x /opt/evaluation-orchestrator/plotting/boxplots/plotService
43

44 45 46 47
# configuration
ADD conf /etc/docker-config
RUN mkdir /opt/evaluation-orchestrator/conf

Daniel Seybold's avatar
Daniel Seybold committed
48

49 50 51 52 53 54

# Logging dir
RUN mkdir /var/log/evaluation-orchestrator/


# Download and build workload-API-client
Daniel Seybold's avatar
Daniel Seybold committed
55
RUN cd /opt/evaluation-orchestrator/lib/ ; git clone -b icpe2019 https://omi-gitlab.e-technik.uni-ulm.de/mowgli/workload-API-client.git
56
RUN cd /opt/evaluation-orchestrator/lib/workload-API-client ; mvn clean install -DskipTests
57 58

# Download and build applicationdeployment-client
Daniel Seybold's avatar
Daniel Seybold committed
59
RUN cd /opt/evaluation-orchestrator/lib/ ; git clone -b icpe2019 https://omi-gitlab.e-technik.uni-ulm.de/mowgli/dbms-catalogue-client.git 
60
RUN cd /opt/evaluation-orchestrator/lib/dbms-catalogue-client ; mvn clean install -DskipTests
61

62
# Download and build maki-manager-client
Daniel Seybold's avatar
Daniel Seybold committed
63
RUN cd /opt/evaluation-orchestrator/lib/ ; git clone -b icpe2019 https://omi-gitlab.e-technik.uni-ulm.de/mowgli/maki-manager-client
64
RUN cd /opt/evaluation-orchestrator/lib/maki-manager-client ; mvn clean install -DskipTests
65

Daniel Seybold's avatar
Daniel Seybold committed
66 67 68
# install maven deps
RUN cd /opt/evaluation-orchestrator/ ; mvn install

69 70 71 72 73 74 75 76 77
# result folder
RUN mkdir /opt/evaluation-results/
 
# expose ports
EXPOSE 8282

# start from init folder
WORKDIR /opt/docker-init
ENTRYPOINT ["./entrypoint"]