From 70d110ddddf96879a0a68d4a794ba70f770f6a84 Mon Sep 17 00:00:00 2001 From: Dileep Ranganathan Date: Thu, 19 Jul 2018 09:26:56 -0700 Subject: 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 --- docker/build_image.sh | 58 +++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 47 insertions(+), 11 deletions(-) (limited to 'docker/build_image.sh') 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 ) -- cgit 1.2.3-korg