diff options
Diffstat (limited to 'docker')
-rw-r--r-- | docker/Dockerfile | 49 | ||||
-rwxr-xr-x | docker/build_image.sh | 52 |
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 +) |