echo
count=30 # docker build jobs might take up to ~30 min
-while [[ -n `ps -ef|grep 'docker build'|grep -v grep` ]]; do
- echo "Build in progress. Waiting..."
+while [[ -n `ps -ef| grep 'docker build' | grep $DOCKER_REPO_NAME | grep -v grep` ]]; do
+ echo "Build or cleanup of $DOCKER_REPO_NAME in progress. Waiting..."
sleep 60
count=$(( $count - 1 ))
if [ $count -eq 0 ]; then
done
fi
-cd $WORKSPACE/$DOCKER_DIR
-HOST_ARCH=$(uname -m)
-if [ ! -f "${DOCKERFILE}" ]; then
- # If this is expected to be a Dockerfile for other arch than x86
- # and it does not exist, but there is a patch for the said arch,
- # then apply the patch and create the Dockerfile.${HOST_ARCH} file
- if [[ "${DOCKERFILE}" == *"${HOST_ARCH}" && \
- -f "Dockerfile.${HOST_ARCH}.patch" ]]; then
- patch -o Dockerfile."${HOST_ARCH}" Dockerfile \
- Dockerfile."${HOST_ARCH}".patch
- else
- echo "ERROR: No Dockerfile or ${HOST_ARCH} patch found."
- exit 1
- fi
+cd "$WORKSPACE/$DOCKER_DIR" || exit 1
+HOST_ARCH="$(uname -m)"
+#If there is a patch for other arch then x86, apply the patch and
+#replace Dockerfile file
+dockerfile_patch="Dockerfile.${HOST_ARCH}.patch"
+if [[ -f "${dockerfile_patch}" ]]; then
+ patch -f Dockerfile -p1 < "${dockerfile_patch}"
fi
# Get tag version
if [[ "$BRANCH" == "master" ]]; then
DOCKER_TAG="latest"
elif [[ -n "${RELEASE_VERSION-}" ]]; then
- DOCKER_TAG=${BRANCH##*/}.${RELEASE_VERSION}
- # e.g. danube.1.0, danube.2.0, danube.3.0
+ DOCKER_TAG=${RELEASE_VERSION}
+ if git checkout ${RELEASE_VERSION}; then
+ echo "Successfully checked out the git tag ${RELEASE_VERSION}"
+ else
+ echo "The tag ${RELEASE_VERSION} doesn't exist in the repository. Existing tags are:"
+ git tag
+ exit 1
+ fi
else
DOCKER_TAG="stable"
fi
BUILD_BRANCH=$COMMIT_ID
fi
+ARCH_BUILD_ARG=""
+ARCH_TAG=${ARCH_TAG:-}
+if [[ -n "${ARCH_TAG}" ]]; then
+ DOCKER_TAG=${ARCH_TAG}-${DOCKER_TAG}
+ ARCH_BUILD_ARG="--build-arg ARCH=${ARCH_TAG}"
+fi
+
# Start the build
echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG"
echo "--------------------------------------------------------"
echo
cmd="docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG --build-arg BRANCH=$BUILD_BRANCH
+ $ARCH_BUILD_ARG
-f $DOCKERFILE ."
echo ${cmd}