--- /dev/null
+##############################################################################
+# Copyright (c) 2019 AT&T, ENEA AB, Nokia and others #
+# #
+# Licensed under the Apache License, Version 2.0 (the "License"); #
+# you maynot use this file except in compliance with the License. #
+# #
+# You may obtain a copy of the License at #
+# http://www.apache.org/licenses/LICENSE-2.0 #
+# #
+# Unless required by applicable law or agreed to in writing, software #
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT #
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
+# See the License for the specific language governing permissions and #
+# limitations under the License. #
+##############################################################################
+
+# ref: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#use-multi-stage-builds
+FROM python:3.6-alpine3.9 as build
+
+# Install dependencies
+COPY pip-requirements.txt /wheels/requirements/pip-requirements.txt
+RUN apk --no-cache add --update \
+ gcc \
+ git \
+ libc-dev \
+ libffi \
+ libffi-dev \
+ make \
+ openssl-dev
+
+# Build binaries
+WORKDIR /wheels
+RUN pip3 install wheel
+RUN pip3 wheel -r /wheels/requirements/pip-requirements.txt
+RUN git clone https://gerrit.akraino.org/r/validation /opt/akraino/validation
+RUN git clone https://github.com/docker/docker-bench-security.git /opt/akraino/docker-bench-security
+
+# Copy binaries in the final container and install requirements
+FROM python:3.6-alpine3.9
+COPY --from=build /wheels /wheels
+COPY --from=build /opt/akraino/validation /opt/akraino/validation
+COPY --from=build /opt/akraino/docker-bench-security /opt/akraino/docker-bench-security
+
+RUN pip3 install -r /wheels/requirements/pip-requirements.txt \
+ -f /wheels && \
+ rm -rf /wheels && \
+ rm -rf /root/.cache/pip/*
+
+# Install blueval dependencies
+RUN pip install -r /opt/akraino/validation/bluval/requirements.txt
--- /dev/null
+##############################################################################
+# Copyright (c) 2019 AT&T, ENEA AB, Nokia and others #
+# #
+# Licensed under the Apache License, Version 2.0 (the "License"); #
+# you maynot use this file except in compliance with the License. #
+# #
+# You may obtain a copy of the License at #
+# http://www.apache.org/licenses/LICENSE-2.0 #
+# #
+# Unless required by applicable law or agreed to in writing, software #
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT #
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
+# See the License for the specific language governing permissions and #
+# limitations under the License. #
+##############################################################################
+
+.PHONY: all
+all: .push_image .push_manifest
+
+.PHONY: build
+build: .build
+
+include ../build.mk
--- /dev/null
+robotframework
+robotframework-sshlibrary
*** Variables ***
${REPORTDIR} ${LOG_PATH}${/}${SUITE_NAME.replace(' ','_')}
-${SRCDIR} ./docker-bench-security
+${SRCDIR} /opt/akraino/docker-bench-security
${DESTDIR} /tmp/docker-bench-security
${NODEDIR} /tmp/docker-bench-security-run
${SSH_OPTS} -o StrictHostKeyChecking=no
Open Connection ${HOST}
Login With Public Key ${USERNAME} ${SSH_KEYFILE}
-Download Docker Bench Software
- Remove Docker Bench Software
- Run Process git clone
- ... https://github.com/docker/docker-bench-security.git ${SRCDIR}
-
Upload Test Software To Nodes
Put Directory ${SRCDIR} ${DESTDIR} recursive=True
Get Node Addresses
\ Execute Command ssh ${SSH_OPTS} ${node} "mkdir -p ${NODEDIR}"
\ Execute Command scp ${SSH_OPTS} -rp ${DESTDIR}/. ${node}:${NODEDIR}
-Remove Docker Bench Software
- Remove Directory ${SRCDIR} recursive=True
-
Remove Test Software From Nodes
:FOR ${node} IN @{nodes}
\ Execute Command ssh ${SSH_OPTS} ${node} "rm -rf ${NODEDIR}"
... containers in production.
Library BuiltIn
Resource docker_bench.resource
-Suite Setup Run Keywords Open Connection And Log In
-... Download Docker Bench Software
-Suite Teardown Run Keywords Remove Docker Bench Software
-... Close All Connections
+Suite Setup Open Connection And Log In
+Suite Teardown Close All Connections
Test Setup Upload Test Software To Nodes
Test Teardown Remove Test Software From Nodes