aboutsummaryrefslogtreecommitdiffstats
path: root/docker
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
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')
-rw-r--r--docker/Dockerfile20
-rwxr-xr-xdocker/build_image.sh58
2 files changed, 63 insertions, 15 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 7a38ad8..5a2c460 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -19,6 +19,14 @@
FROM ubuntu:16.04
+ARG MVN_ARTIFACT_VERSION
+ARG REPO
+ARG HTTP_PROXY=${HTTP_PROXY}
+ARG HTTPS_PROXY=${HTTPS_PROXY}
+
+ENV http_proxy $HTTP_PROXY
+ENV https_proxy $HTTPS_PROXY
+
ENV OSDF_PORT "8699"
EXPOSE ${OSDF_PORT}
@@ -28,7 +36,7 @@ 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 vim unzip wget libmpfr-dev \
&& apt-get install -y git libqt5printsupport5 build-essential \
&& apt-get install -y python3 python3-setuptools python3-dev \
&& easy_install3 pip \
@@ -47,7 +55,11 @@ 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
+WORKDIR /opt/osdf
+RUN wget -O /opt/osdf.zip "https://nexus.onap.org/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.optf.osdf&a=optf-osdf&e=zip&v=${MVN_ARTIFACT_VERSION}" && \
+ unzip -q -o -B /opt/osdf.zip -d /opt/ && \
+ rm -f /opt/osdf.zip
+RUN mkdir -p /var/log/onap/optf/osdf/
+RUN pip install --no-cache-dir -r requirements.txt
-CMD [ "/osdf/osdfapp.sh" ]
+CMD [ "/opt/osdf/osdfapp.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
)