summaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile49
-rwxr-xr-xdocker/build_image.sh52
2 files changed, 101 insertions, 0 deletions
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
+)