aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSastry Isukapalli <sastry@research.att.com>2018-03-22 02:03:23 -0400
committerSastry Isukapalli <sastry@research.att.com>2018-03-22 03:23:52 -0400
commitaa429005c6670758fcf1d895f699b03250e8035b (patch)
tree6d56f7539fb3afa62e0033e566c563eddcaad8b1
parent1a9638f5d5fc78f7e8be700e71b506fed3cc9d2d (diff)
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 <sastry@research.att.com>
-rw-r--r--config/common_config.yaml4
-rw-r--r--docker/Dockerfile49
-rwxr-xr-xdocker/build_image.sh52
-rw-r--r--version.properties28
4 files changed, 131 insertions, 2 deletions
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