d52b4c2fe1b6a76ee48a13ec3a9c1571156222e7
[testsuite.git] / docker / Dockerfile
1 FROM ubuntu:20.04
2
3 ## Be careful of Windows newlines
4 MAINTAINER "ONAP"
5 LABEL name="Docker image for the ONAP Robot Testing Framework"
6 LABEL usage="docker run -e ROBOT_TEST=<testname> -ti onapete"
7 ENV BUILDTIME=true
8
9 ARG TESTSUITE_TAG=master
10 ARG PYTHON_UTILS_TAG=master
11 ARG DEMO_TAG=master
12 ARG KUBERNETES_VERSION="v1.19.11"
13 ARG HELM_VERSION="v3.3.4"
14
15 ARG TESTSUITE_REPO=git.onap.org/testsuite
16 ARG PYTHON_UTILS_REPO=git.onap.org/testsuite/python-testing-utils.git
17 ARG DEMO_REPO=git.onap.org/demo
18 ARG DEBIAN_FRONTEND=noninteractive
19
20 COPY requirements.txt requirements.txt
21
22 # Install kubectl
23 # Note: Latest version may be found on:
24 # https://aur.archlinux.org/packages/kubectl-bin/
25 ADD https://storage.googleapis.com/kubernetes-release/release/${KUBERNETES_VERSION}/bin/linux/amd64/kubectl /usr/local/bin/kubectl
26 ADD https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 get_helm.sh
27
28 # Install Python, Pip, Robot framework, chromium, lighttpd web server
29 RUN apt-get update \
30     && apt-get install \
31         --no-install-recommends \
32         --assume-yes \
33             chromium-browser \
34             chromium-chromedriver \
35             dnsutils \
36             git \
37             gcc \
38             libffi-dev \
39             libssl-dev \
40             lighttpd \
41             make \
42             net-tools \
43             netbase \
44             unzip zip \
45             x11-utils x11-xserver-utils \
46             xvfb \
47             xxd  \
48             wget vim  \
49             python3.8 python3.8-dev python3-pip && \
50     ln -s /usr/bin/python3 /usr/bin/python && \
51     mkdir -p /var/opt/ONAP && \
52     pip3 install --no-cache-dir -r requirements.txt && \
53     pip3 install --no-cache-dir \
54     git+https://$PYTHON_UTILS_REPO@$PYTHON_UTILS_TAG#egg=robotframework-onap\&subdirectory=robotframework-onap && \
55     git clone --depth 1 https://$TESTSUITE_REPO -b $TESTSUITE_TAG /var/opt/ONAP && \
56     git clone --depth 1 https://$DEMO_REPO -b $DEMO_TAG /var/opt/ONAP/demo && \
57     chmod +x /usr/local/bin/kubectl && \
58     chmod 700 get_helm.sh  && \
59     ./get_helm.sh --version $HELM_VERSION && \
60     mkdir -p /app && \
61     cp /var/opt/ONAP/setup-hvves.sh /app
62
63
64 RUN python3.8 -m pip install --no-cache-dir setuptools wheel
65 RUN python3.8 -m pip install --no-cache-dir virtualenv
66
67 # Copy the robot code
68 RUN mkdir -p /etc/lighttpd && \
69     rm /etc/lighttpd/lighttpd.conf && \
70     ln -s /var/opt/ONAP/docker/lighttpd.conf /etc/lighttpd/lighttpd.conf && \
71     ln -s /var/opt/ONAP/docker/authorization /etc/lighttpd/authorization && \
72     chmod 777 /var/opt/ONAP/setup.sh \
73     && chmod 777 /var/opt/ONAP/runTags.sh \
74     && chmod 777 /var/opt/ONAP/dnstraffic.sh \
75     && chmod 777 /var/opt/ONAP/runSoak.sh \
76     && chmod 777 /var/opt/ONAP/runEteTag.sh \
77     && chmod 600 /var/opt/ONAP/robot/assets/keys/* && \
78     cd /var/opt/ONAP && ./setup.sh \
79     && apt-get autoremove --assume-yes \
80     && rm -rf /var/lib/apt/lists/*  \
81     && apt-get clean
82 CMD ["lighttpd", "-D", "-f",  "/etc/lighttpd/lighttpd.conf"]