summaryrefslogtreecommitdiffstats
path: root/docker/Dockerfile
blob: d52b4c2fe1b6a76ee48a13ec3a9c1571156222e7 (plain)
1
2
3
4
5
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
FROM ubuntu:20.04

## Be careful of Windows newlines
MAINTAINER "ONAP"
LABEL name="Docker image for the ONAP Robot Testing Framework"
LABEL usage="docker run -e ROBOT_TEST=<testname> -ti onapete"
ENV BUILDTIME=true

ARG TESTSUITE_TAG=master
ARG PYTHON_UTILS_TAG=master
ARG DEMO_TAG=master
ARG KUBERNETES_VERSION="v1.19.11"
ARG HELM_VERSION="v3.3.4"

ARG TESTSUITE_REPO=git.onap.org/testsuite
ARG PYTHON_UTILS_REPO=git.onap.org/testsuite/python-testing-utils.git
ARG DEMO_REPO=git.onap.org/demo
ARG DEBIAN_FRONTEND=noninteractive

COPY requirements.txt requirements.txt

# Install kubectl
# Note: Latest version may be found on:
# https://aur.archlinux.org/packages/kubectl-bin/
ADD https://storage.googleapis.com/kubernetes-release/release/${KUBERNETES_VERSION}/bin/linux/amd64/kubectl /usr/local/bin/kubectl
ADD https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 get_helm.sh

# Install Python, Pip, Robot framework, chromium, lighttpd web server
RUN apt-get update \
    && apt-get install \
        --no-install-recommends \
        --assume-yes \
            chromium-browser \
            chromium-chromedriver \
            dnsutils \
            git \
            gcc \
            libffi-dev \
            libssl-dev \
            lighttpd \
            make \
            net-tools \
            netbase \
            unzip zip \
            x11-utils x11-xserver-utils \
            xvfb \
            xxd  \
            wget vim  \
            python3.8 python3.8-dev python3-pip && \
    ln -s /usr/bin/python3 /usr/bin/python && \
    mkdir -p /var/opt/ONAP && \
    pip3 install --no-cache-dir -r requirements.txt && \
    pip3 install --no-cache-dir \
    git+https://$PYTHON_UTILS_REPO@$PYTHON_UTILS_TAG#egg=robotframework-onap\&subdirectory=robotframework-onap && \
    git clone --depth 1 https://$TESTSUITE_REPO -b $TESTSUITE_TAG /var/opt/ONAP && \
    git clone --depth 1 https://$DEMO_REPO -b $DEMO_TAG /var/opt/ONAP/demo && \
    chmod +x /usr/local/bin/kubectl && \
    chmod 700 get_helm.sh  && \
    ./get_helm.sh --version $HELM_VERSION && \
    mkdir -p /app && \
    cp /var/opt/ONAP/setup-hvves.sh /app


RUN python3.8 -m pip install --no-cache-dir setuptools wheel
RUN python3.8 -m pip install --no-cache-dir virtualenv

# Copy the robot code
RUN mkdir -p /etc/lighttpd && \
    rm /etc/lighttpd/lighttpd.conf && \
    ln -s /var/opt/ONAP/docker/lighttpd.conf /etc/lighttpd/lighttpd.conf && \
    ln -s /var/opt/ONAP/docker/authorization /etc/lighttpd/authorization && \
    chmod 777 /var/opt/ONAP/setup.sh \
    && chmod 777 /var/opt/ONAP/runTags.sh \
    && chmod 777 /var/opt/ONAP/dnstraffic.sh \
    && chmod 777 /var/opt/ONAP/runSoak.sh \
    && chmod 777 /var/opt/ONAP/runEteTag.sh \
    && chmod 600 /var/opt/ONAP/robot/assets/keys/* && \
    cd /var/opt/ONAP && ./setup.sh \
    && apt-get autoremove --assume-yes \
    && rm -rf /var/lib/apt/lists/*  \
    && apt-get clean
CMD ["lighttpd", "-D", "-f",  "/etc/lighttpd/lighttpd.conf"]