aboutsummaryrefslogtreecommitdiffstats
path: root/docker/build_image.sh
diff options
context:
space:
mode:
authorDileep Ranganathan <dileep.ranganathan@intel.com>2018-07-19 09:26:56 -0700
committerDileep Ranganathan <dileep.ranganathan@intel.com>2018-07-25 17:02:05 -0700
commit70d110ddddf96879a0a68d4a794ba70f770f6a84 (patch)
treeb7e21cabca81408e2afa601257c9ca7e49a0bebe /docker/build_image.sh
parent443e3ae95abb92c7cd79fa975e0136a1539a5254 (diff)
Fix Docker image to use the nexus artifacts
Fixed Docker image to use the nexus artifacts instead of building from source. Added proxy support. Updated the Docker image version for Casablanca. Change-Id: If7f6eb206356c5b255804f27949d23ab85068f52 Issue-ID: OPTFRA-301 Signed-off-by: Dileep Ranganathan <dileep.ranganathan@intel.com>
Diffstat (limited to 'docker/build_image.sh')
-rwxr-xr-xdocker/build_image.sh58
1 files changed, 47 insertions, 11 deletions
diff --git a/docker/build_image.sh b/docker/build_image.sh
index c723a4f..d5e153b 100755
--- a/docker/build_image.sh
+++ b/docker/build_image.sh
@@ -25,28 +25,64 @@ IMAGE_NAME=$DOCKER_REPOSITORY/$ORG/$PROJECT
# Version properties
source version.properties
VERSION=$release_version
+SNAPSHOT=$snapshot_version
STAGING=${release_version}-STAGING
+TIMESTAMP=$(date +"%Y%m%dT%H%M%S")Z
+
+BUILD_ARGS="--no-cache"
+if [ $HTTP_PROXY ]; then
+ BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}"
+fi
+if [ $HTTPS_PROXY ]; then
+ BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}"
+fi
function log_ts() { # Log message with timestamp
echo [DEBUG LOG at $(date -u +%Y%m%d:%H%M%S)] "$@"
}
+function get_artifact_version() {
+ log_ts Get Maven Artifact version from pom.xml
+ MVN_ARTIFACT_VERSION=`echo -e "setns x=http://maven.apache.org/POM/4.0.0 \n xpath /x:project/x:version/text() "| xmllint --shell pom.xml | grep content | sed 's/.*content=//'`
+ log_ts Maven artifact version for OSDF is $MVN_ARTIFACT_VERSION
+ if [[ "$MVN_ARTIFACT_VERSION" =~ SNAPSHOT ]]; then
+ log_ts "REPO is snapshots";
+ REPO=snapshots
+ else
+ log_ts "REPO is releases";
+ REPO=releases
+ fi
+ BUILD_ARGS+=" --build-arg REPO=${REPO}"
+ BUILD_ARGS+=" --build-arg MVN_ARTIFACT_VERSION=${MVN_ARTIFACT_VERSION}"
+}
+
function build_image() {
- log_ts Building Image in folder: $PWD
- docker build -t ${IMAGE_NAME}:${VERSION} -t ${IMAGE_NAME}:latest -t ${IMAGE_NAME}:${STAGING} .
- log_ts ... Built
+ log_ts Building Image in folder: $PWD with build arguments ${BUILD_ARGS}
+ docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:latest .
+ log_ts ... Built
+}
+
+function tag_image() {
+ log_ts Tagging images: ${IMAGE_NAME}:\{$SNAPSHOT-${TIMESTAMP},$STAGING-${TIMESTAMP},latest\}
+ docker tag ${IMAGE_NAME}:latest ${IMAGE_NAME}:${SNAPSHOT}-${TIMESTAMP}
+ docker tag ${IMAGE_NAME}:latest ${IMAGE_NAME}:${STAGING}-${TIMESTAMP}
+ docker tag ${IMAGE_NAME}:latest ${IMAGE_NAME}:latest
+ log_ts ... Tagged images
}
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
+ log_ts Pushing images: ${IMAGE_NAME}:\{$SNAPSHOT-${TIMESTAMP},$STAGING-${TIMESTAMP},latest\}
+ docker push ${IMAGE_NAME}:${SNAPSHOT}-${TIMESTAMP}
+ docker push ${IMAGE_NAME}:${STAGING}-${TIMESTAMP}
+ docker push ${IMAGE_NAME}:latest
+ log_ts ... Pushed images
}
(
- cd $(dirname $0)
- build_image
- push_image
+ get_artifact_version
+ # Switch to docker build directory
+ cd $(dirname $0)
+ build_image
+ tag_image
+ push_image
)