diff options
Diffstat (limited to 'vesagent/docker')
-rw-r--r-- | vesagent/docker/Dockerfile | 26 | ||||
-rwxr-xr-x | vesagent/docker/docker-build.sh | 95 | ||||
-rw-r--r-- | vesagent/docker/opt/requirements.txt | 5 | ||||
-rwxr-xr-x | vesagent/docker/opt/start-manager.sh | 4 |
4 files changed, 130 insertions, 0 deletions
diff --git a/vesagent/docker/Dockerfile b/vesagent/docker/Dockerfile new file mode 100644 index 0000000..3b5b8e4 --- /dev/null +++ b/vesagent/docker/Dockerfile @@ -0,0 +1,26 @@ +# Use an official Python runtime as a parent image +FROM python:2.7.14 + +# Make port <Port Num> available to the world outside this container +#EXPOSE <Port Num> + +RUN echo "deb http://http.debian.net/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list && \ + apt-get update && \ + apt-get install -y vim && \ + apt-get install -y zip && \ + apt-get install -y unzip && \ + apt-get install -y curl && \ + apt-get install -y wget && \ + apt-get install -y -t jessie-backports openjdk-8-jre-headless ca-certificates-java + +# Set the working directory to /opt +WORKDIR /opt + +# Copy the local opt directory contents into the container at /opt +ADD opt /opt + +# Install any needed packages specified in requirements.txt +RUN pip install -r requirements.txt + +# Run application when the container launches +CMD [ "/opt/start-manager.sh" ] diff --git a/vesagent/docker/docker-build.sh b/vesagent/docker/docker-build.sh new file mode 100755 index 0000000..2b2f100 --- /dev/null +++ b/vesagent/docker/docker-build.sh @@ -0,0 +1,95 @@ +#!/bin/bash +echo "WORKSPACE: ${WORKSPACE}" +VERSION="1.0.0-SNAPSHOT" + +# +# Copy vesagent Uber JAR to docker app directory +# +APP=${WORKSPACE}/vesagent/target/vesagent-${VERSION}.jar + +if [ ! -f "${APP}" ] +then + echo "FATAL error cannot locate ${APP}" + exit 2 +fi + +APP_DIR=${WORKSPACE}/vesagent/docker/opt + +[ -d "${APP_DIR}/vesagent-${VERSION}.jar" ] && rm -rf "${APP_DIR}/vesagent-${VERSION}.jar" + +cp ${APP} ${APP_DIR} + +# +# Copy configurations directory +# +CONF_DIR=${WORKSPACE}/vesagent/etc + +if [ ! -d "${CONF_DIR}" ] +then + echo "FATAL error cannot locate ${CONF_DIR}" + exit 2 +fi + +APP_DIR=${WORKSPACE}/vesagent/docker/opt + +[ -d "${APP_DIR}/etc" ] && rm -rf "${APP_DIR}/etc" + +cp -a ${CONF_DIR} ${APP_DIR} + +# +# Copy python scripts directory +# +PY_DIR=${WORKSPACE}/vesagent/py + +if [ ! -d "${PY_DIR}" ] +then + echo "FATAL error cannot locate ${PY_DIR}" + exit 2 +fi + +if [ -d "${PY_DIR}" ] +then + echo "Remove all dummy & test scripts" + rm -f ${PY_DIR}/dummy* + rm -f ${PY_DIR}/test* +fi + +APP_DIR=${WORKSPACE}/vesagent/docker/opt + +[ -d "${APP_DIR}/py" ] && rm -rf "${APP_DIR}/py" + +cp -a ${PY_DIR} ${APP_DIR} + +# +# build the docker image. tag and then push to the remote repo +# +BUILD_ARGS="--no-cache" +DOCKER_REPOSITORY="nexus3.onap.org:10003" +ORG="onap" +PROJECT="multicloud" +IMAGE="vio-vesagent" +VERSION="${VERSION//[^0-9.]/}" +IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}" + +if [ $HTTP_PROXY ]; then + BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}" +fi +if [ $HTTPS_PROXY ]; then + BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}" +fi + +function build_image { + # build the image + echo "Start build docker image: ${IMAGE_NAME}" + docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:${VERSION} -t ${IMAGE_NAME}:latest . +} + +function push_image { + # push the image + echo "Start push docker image: ${IMAGE_NAME}" + docker push ${IMAGE_NAME}:${VERSION} + docker push ${IMAGE_NAME}:latest +} + +build_image +push_image diff --git a/vesagent/docker/opt/requirements.txt b/vesagent/docker/opt/requirements.txt new file mode 100644 index 0000000..92a4890 --- /dev/null +++ b/vesagent/docker/opt/requirements.txt @@ -0,0 +1,5 @@ +# VMWare vSphere Management SDK +pyvmomi==6.5.0.2017.5-1 + +# Pure Python Vi Implementation +pyvim==0.0.21 diff --git a/vesagent/docker/opt/start-manager.sh b/vesagent/docker/opt/start-manager.sh new file mode 100755 index 0000000..76adfe4 --- /dev/null +++ b/vesagent/docker/opt/start-manager.sh @@ -0,0 +1,4 @@ +#!/bin/bash +# TODO: Enable the below command to execute the VESAgent process +exec java -jar /opt/vesagent-1.0.0-SNAPSHOT.jar /opt/etc/Agent.properties +#while :; do echo 'sleeping for 3600 secs'; sleep 3600; done |