[ROBOT] Adopt HVVES test case in order to work with strimzi kafka
[testsuite.git] / docker / Dockerfile
index 888d6ed..c8e97dc 100644 (file)
@@ -1,58 +1,81 @@
-FROM ubuntu
+FROM ubuntu:18.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
 
-MAINTAINER "OpenECOMP"
-
-LABEL name="Docker image for the OpenECOMP Robot Testing Framework"
-LABEL usage="docker run -e ROBOT_TEST=<testname> -ti openecompete"
-
-# Install Python Pip, Robot framework, firefox, lighttpd web server, wget
-# Restructuring so we can see where it fails in the build.
-RUN apt-get update
-RUN apt-get --assume-yes install python2.7
-RUN apt-get --assume-yes install build-essential
-RUN apt-get --assume-yes install dbus
-RUN apt-get --assume-yes install dnsutils
-RUN apt-get --assume-yes install git
-RUN apt-get --assume-yes install libappindicator1
-RUN apt-get --assume-yes install libffi-dev
-RUN apt-get --assume-yes install libindicator7
-RUN apt-get --assume-yes install libssl-dev
-RUN apt-get --assume-yes install libxss1
-RUN apt-get --assume-yes install lighttpd
-RUN apt-get --assume-yes install net-tools
-RUN apt-get --assume-yes install python-dev
-RUN apt-get --assume-yes install python-pip
-RUN apt-get --assume-yes install unzip
-RUN apt-get --assume-yes install wget
-RUN apt-get --assume-yes install xvfb
-RUN apt-get --assume-yes install xxd
-RUN pip install --upgrade pip
-RUN pip install robotframework
-RUN python --version
-
-# Install chrome
-RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
-    echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list  && \
-    apt-get update && \
-    apt-get --assume-yes install google-chrome-stable
+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"
 
-# Copy the robot code
-COPY / /var/opt/OpenECOMP_ETE/
-COPY lighttpd.conf /etc/lighttpd/lighttpd.conf
-RUN chmod 777 /var/opt/OpenECOMP_ETE/setup.sh && \
-    chmod 777 /var/opt/OpenECOMP_ETE/runTags.sh && \
-    chmod 777 /var/opt/OpenECOMP_ETE/dnstraffic.sh && \
-    chmod 777 /var/opt/OpenECOMP_ETE/runSoak.sh && \
-    chmod 777 /var/opt/OpenECOMP_ETE/runEteTag.sh
+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
 
-# Set mode for the SSH keys
-RUN chmod 600 /var/opt/OpenECOMP_ETE/robot/assets/keys/* 
+COPY requirements.txt requirements.txt
 
-# Update the ssh library so that it will run properly in the docker env
-RUN cd /var/opt/OpenECOMP_ETE && ./setup.sh && apt-get clean
+# 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
 
-CMD ["lighttpd", "-D", "-f",  "/etc/lighttpd/lighttpd.conf"]
+# 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 \
+            python2.7 python-dev python-setuptools python-wheel python-pip \
+            netbase \
+            unzip zip \
+            x11-utils x11-xserver-utils \
+            xvfb \
+            xxd  \
+            wget vim  \
+            python3.7 python3.7-dev python3-pip && \
+    mkdir -p /var/opt/ONAP && \
+    pip install --no-cache-dir -r requirements.txt && \
+    pip 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.7 -m pip install --no-cache-dir setuptools wheel
+RUN python3.7 -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"]