summaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
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
)