aboutsummaryrefslogtreecommitdiffstats
path: root/docker/build_image.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docker/build_image.sh')
-rwxr-xr-xdocker/build_image.sh52
1 files changed, 52 insertions, 0 deletions
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
+)