From aa429005c6670758fcf1d895f699b03250e8035b Mon Sep 17 00:00:00 2001 From: Sastry Isukapalli Date: Thu, 22 Mar 2018 02:03:23 -0400 Subject: Add docker components for CSIT Added license to Dockerfile Added 8699 internal port and 8698 external port Issue-ID: OPTFRA-22 Change-Id: I232acc6cd417efda164ae825362dcc6d0be28a12 Signed-off-by: Sastry Isukapalli --- config/common_config.yaml | 4 ++-- docker/Dockerfile | 49 ++++++++++++++++++++++++++++++++++++++++++++ docker/build_image.sh | 52 +++++++++++++++++++++++++++++++++++++++++++++++ version.properties | 28 +++++++++++++++++++++++++ 4 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 docker/Dockerfile create mode 100755 docker/build_image.sh create mode 100644 version.properties diff --git a/config/common_config.yaml b/config/common_config.yaml index bc62a58..89678a2 100644 --- a/config/common_config.yaml +++ b/config/common_config.yaml @@ -1,8 +1,8 @@ osdf_system: libpath: /opt/app/osdf/libs osdf_ports: - internal: 24699 # inside the Docker container, the app listens to this port - external: 14699 # clients use this port on DockerHost + internal: 8699 # inside the Docker container, the app listens to this port + external: 8698 # clients use this port on DockerHost osdf_ip_default: 0.0.0.0 # # Important Note: At deployment time, we need to ensure the port mapping is done # ssl_context: ['./../etc/sniromanager.crt', './../etc/sniromanager.key'] diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..c703332 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,49 @@ +# +# ------------------------------------------------------------------------- +# Copyright (c) 2018 AT&T Intellectual Property +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not 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. +# +# ------------------------------------------------------------------------- +# + +FROM ubuntu:16.04 + +ENV OSDF_PORT "8699" +EXPOSE ${OSDF_PORT} + +ENV MZN 2.1.6 +ENV MZN_BASENAME MiniZincIDE-${MZN}-bundle-linux-x86_64 +ENV MZN_GH_BASE https://github.com/MiniZinc/MiniZincIDE +ENV MZN_DL_URL ${MZN_GH_BASE}/releases/download/${MZN}/${MZN_BASENAME}.tgz + +RUN apt-get update -y \ + && apt-get install -y vim wget libmpfr-dev \ + && apt-get install -y git libqt5printsupport5 build-essential \ + && apt-get install -y python3 python3-setuptools python3-dev \ + && easy_install3 pip \ + && pip install --upgrade virtualenv pip wheel + +# Minizinc +RUN wget -q $MZN_DL_URL -O mz.tgz \ + && tar xzf mz.tgz \ + && mv $MZN_BASENAME /mz-dist \ + && rm mz.tgz \ + && echo PATH=/mz-dist:$PATH >> ~/.bashrc + +ENV SHELL /bin/bash +ENV PATH /mz-dist:$PATH + +# OSDF +RUN git clone http://gerrit.onap.org/r/optf/osdf \ + && pip install --no-cache-dir -r osdf/requirements.txt diff --git a/docker/build_image.sh b/docker/build_image.sh new file mode 100755 index 0000000..8f05866 --- /dev/null +++ b/docker/build_image.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# The script starts in the root folder of the repo, which has the following outline +# We fetch the version information from version.properties, build docker files and +# do a docker push. Since the job will be run under Jenkins, it will have the Nexus +# credentials +# +# ├── docker +# │   ├── Dockerfile +# │   └── build_image.sh <--- THIS SCRIPT is here +# ├── docs +# ├── osdf +# ├── pom.xml +# ├── test +# └── version.properties <--- Version information here + +set -e + +# Folder settings +DOCKER_REPOSITORY=nexus3.onap.org:10003 +ORG=onap +PROJECT=optf-osdf +IMAGE_NAME=$DOCKER_REPOSITORY/$ORG/$PROJECT + +# Version properties +source version.properties +VERSION=$release_version +STAGING=${release_version}-SNAPSHOT-$(date -u +date -u '+%Y%m%dT%H%M%SZ') + +function log_ts() { # Log message with timestamp + echo [DEBUG LOG at $(date -u +%Y%m%d:%H%M%S)] "$@" +} + +function build_image() { + log_ts Building Image in folder: $PWD + docker build -t ${IMAGE_NAME}:${VERSION} -t ${IMAGE_NAME}:latest . + log_ts ... Built +} + +function push_image(){ + log_ts Pushing images: ${IMAGE_NAME}:\{$VERSION,$STAGING,latest\} + docker push ${IMAGE_NAME}:${VERSION} + docker push ${IMAGE_NAME}:${STAGING} + docker push ${IMAGE_NAME}:latest + log_ts ... Pushed images +} + +( + cd $(dirname $0) + build_image + push_image +) diff --git a/version.properties b/version.properties new file mode 100644 index 0000000..37c1f7f --- /dev/null +++ b/version.properties @@ -0,0 +1,28 @@ +# +# ------------------------------------------------------------------------- +# Copyright (c) 2018 AT&T Intellectual Property +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not 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. +# +# ------------------------------------------------------------------------- +# + +major=1 +minor=1 +patch=0 + +base_version=${major}.${minor}.${patch} + +# Release must be completed with git revision # in Jenkins +release_version=${base_version} +snapshot_version=${base_version}-SNAPSHOT -- cgit 1.2.3-korg