Add docker components for CSIT 75/37675/5
authorSastry Isukapalli <sastry@research.att.com>
Thu, 22 Mar 2018 06:03:23 +0000 (02:03 -0400)
committerSastry Isukapalli <sastry@research.att.com>
Thu, 22 Mar 2018 07:23:52 +0000 (03:23 -0400)
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>
config/common_config.yaml
docker/Dockerfile [new file with mode: 0644]
docker/build_image.sh [new file with mode: 0755]
version.properties [new file with mode: 0644]

index bc62a58..89678a2 100644 (file)
@@ -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 (file)
index 0000000..c703332
--- /dev/null
@@ -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 (executable)
index 0000000..8f05866
--- /dev/null
@@ -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 (file)
index 0000000..37c1f7f
--- /dev/null
@@ -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