Merge "Add support to set proxy as argument"

This commit is contained in:
Zuul 2019-02-06 15:07:58 +00:00 committed by Gerrit Code Review
commit b652455b91
4 changed files with 81 additions and 17 deletions

View File

@ -21,6 +21,7 @@ OS_VERSION=7.5.1804
OPENSTACK_RELEASE=pike OPENSTACK_RELEASE=pike
IMAGE_VERSION= IMAGE_VERSION=
PUSH=no PUSH=no
PROXY=""
DOCKER_USER=${USER} DOCKER_USER=${USER}
DOCKER_REGISTRY= DOCKER_REGISTRY=
declare -a REPO_LIST declare -a REPO_LIST
@ -44,6 +45,7 @@ Options:
--repo: Software repository (Format: name,baseurl), can be specified multiple times --repo: Software repository (Format: name,baseurl), can be specified multiple times
--local: Use local build for software repository (cannot be used with --repo) --local: Use local build for software repository (cannot be used with --repo)
--push: Push to docker repo --push: Push to docker repo
--proxy: Set proxy <URL>:<PORT>
--latest: Add a 'latest' tag when pushing --latest: Add a 'latest' tag when pushing
--latest-tag: Use the provided tag when pushing latest. --latest-tag: Use the provided tag when pushing latest.
--user: Docker repo userid --user: Docker repo userid
@ -54,7 +56,7 @@ Options:
EOF EOF
} }
OPTS=$(getopt -o h -l help,os:,os-version:,version:,release:,repo:,push,latest,latest-tag:,user:,registry:,local,clean,hostname: -- "$@") OPTS=$(getopt -o h -l help,os:,os-version:,version:,release:,repo:,push,proxy:,latest,latest-tag:,user:,registry:,local,clean,hostname: -- "$@")
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
usage usage
exit 1 exit 1
@ -97,6 +99,10 @@ while true; do
PUSH=yes PUSH=yes
shift shift
;; ;;
--proxy)
PROXY=$2
shift 2
;;
--latest) --latest)
TAG_LATEST=yes TAG_LATEST=yes
shift shift
@ -217,10 +223,18 @@ BASE_IMAGE_PRESENT=$?
IMAGE_NAME=${DOCKER_REGISTRY}${DOCKER_USER}/stx-${OS}:${IMAGE_VERSION} IMAGE_NAME=${DOCKER_REGISTRY}${DOCKER_USER}/stx-${OS}:${IMAGE_VERSION}
IMAGE_NAME_LATEST=${DOCKER_REGISTRY}${DOCKER_USER}/stx-${OS}:${LATEST_TAG} IMAGE_NAME_LATEST=${DOCKER_REGISTRY}${DOCKER_USER}/stx-${OS}:${LATEST_TAG}
docker build \ local -a BUILD_ARGS
--build-arg RELEASE=${OS_VERSION} \ BUILD_ARGS+=(--build-arg RELEASE=${OS_VERSION})
--build-arg REPO_OPTS="${REPO_OPTS}" \ BUILD_ARGS+=(--build-arg REPO_OPTS=${REPO_OPTS})
--tag ${IMAGE_NAME} ${BUILDDIR}
# Add proxy to docker build
if [ ! -z "$PROXY" ]; then
BUILD_ARGS+=(--build-arg http_proxy=$PROXY)
fi
BUILD_ARGS+=(--tag ${IMAGE_NAME} ${BUILDDIR})
# Build base image
docker build "${BUILD_ARGS[@]}"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Failed running docker build command" >&2 echo "Failed running docker build command" >&2
exit 1 exit 1

View File

@ -24,6 +24,7 @@ IMAGE_VERSION=$(date --utc '+%Y.%m.%d.%H.%M') # Default version, using timestamp
PREFIX=dev PREFIX=dev
LATEST_PREFIX="" LATEST_PREFIX=""
PUSH=no PUSH=no
PROXY=""
DOCKER_USER=${USER} DOCKER_USER=${USER}
DOCKER_REGISTRY= DOCKER_REGISTRY=
BASE= BASE=
@ -45,6 +46,7 @@ Options:
--base: Specify base docker image (required option) --base: Specify base docker image (required option)
--wheels: Specify path to wheels tarball or image, URL or docker tag (required option) --wheels: Specify path to wheels tarball or image, URL or docker tag (required option)
--push: Push to docker repo --push: Push to docker repo
--proxy: Set proxy <URL>:<PORT>
--user: Docker repo userid --user: Docker repo userid
--registry: Docker registry --registry: Docker registry
--prefix: Prefix on the image tag (default: dev) --prefix: Prefix on the image tag (default: dev)
@ -169,6 +171,9 @@ function build_image_loci {
BUILD_ARGS+=(--build-arg PROJECT_REPO=${PROJECT_REPO}) BUILD_ARGS+=(--build-arg PROJECT_REPO=${PROJECT_REPO})
BUILD_ARGS+=(--build-arg FROM=${BASE}) BUILD_ARGS+=(--build-arg FROM=${BASE})
BUILD_ARGS+=(--build-arg WHEELS=${WHEELS}) BUILD_ARGS+=(--build-arg WHEELS=${WHEELS})
if [ ! -z "$PROXY" ]; then
BUILD_ARGS+=(--build-arg http_proxy=$PROXY)
fi
if [ -n "${PROJECT_REF}" ]; then if [ -n "${PROJECT_REF}" ]; then
BUILD_ARGS+=(--build-arg PROJECT_REF=${PROJECT_REF}) BUILD_ARGS+=(--build-arg PROJECT_REF=${PROJECT_REF})
@ -300,9 +305,15 @@ function build_image_docker {
local build_image_name="${USER}/${LABEL}:${IMAGE_TAG_BUILD}" local build_image_name="${USER}/${LABEL}:${IMAGE_TAG_BUILD}"
docker build ${docker_src} --no-cache \ local -a BASE_BUILD_ARGS
--build-arg "BASE=${BASE}" \ BASE_BUILD_ARGS+=(${docker_src} --no-cache)
--tag ${build_image_name} 2>&1 | tee ${WORKDIR}/docker-${LABEL}-${OS}-${OPENSTACK_RELEASE}.log BASE_BUILD_ARGS+=(--build-arg "BASE=${BASE}")
if [ ! -z "$PROXY" ]; then
BASE_BUILD_ARGS+=(--build-arg http_proxy=$PROXY)
fi
BASE_BUILD_ARGS+=(--tag ${build_image_name})
docker build ${BASE_BUILD_ARGS[@]} 2>&1 | tee ${WORKDIR}/docker-${LABEL}-${OS}-${OPENSTACK_RELEASE}.log
if [ ${PIPESTATUS[0]} -ne 0 ]; then if [ ${PIPESTATUS[0]} -ne 0 ]; then
echo "Failed to build ${LABEL}... Aborting" echo "Failed to build ${LABEL}... Aborting"
RESULTS_FAILED+=(${LABEL}) RESULTS_FAILED+=(${LABEL})
@ -349,7 +360,7 @@ function build_image {
esac esac
} }
OPTS=$(getopt -o h -l help,os:,version:,release:,push,user:,registry:,release:,base:,wheels:,only:,skip:,prefix:,latest,latest-prefix:,clean -- "$@") OPTS=$(getopt -o h -l help,os:,version:,release:,push,proxy:,user:,registry:,release:,base:,wheels:,only:,skip:,prefix:,latest,latest-prefix:,clean -- "$@")
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
usage usage
exit 1 exit 1
@ -396,6 +407,10 @@ while true; do
PUSH=yes PUSH=yes
shift shift
;; ;;
--proxy)
PROXY=$2
shift 2
;;
--user) --user)
DOCKER_USER=$2 DOCKER_USER=$2
shift 2 shift 2

View File

@ -20,6 +20,7 @@ KEEP_CONTAINER=no
OS=centos OS=centos
OS_VERSION=7.5.1804 OS_VERSION=7.5.1804
OPENSTACK_RELEASE=pike OPENSTACK_RELEASE=pike
PROXY=""
function usage { function usage {
cat >&2 <<EOF cat >&2 <<EOF
@ -31,12 +32,13 @@ Options:
--os-version: Specify OS version --os-version: Specify OS version
--keep-image: Skip deletion of the wheel build image in docker --keep-image: Skip deletion of the wheel build image in docker
--keep-container: Skip deletion of container used for the build --keep-container: Skip deletion of container used for the build
--proxy: Set proxy <URL>:<PORT>
--release: Openstack release (default: pike) --release: Openstack release (default: pike)
EOF EOF
} }
OPTS=$(getopt -o h -l help,os:,os-version:,keep-image,keep-container,release: -- "$@") OPTS=$(getopt -o h -l help,os:,os-version:,keep-image,keep-container,release:,proxy: -- "$@")
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
usage usage
exit 1 exit 1
@ -71,6 +73,10 @@ while true; do
OPENSTACK_RELEASE=$2 OPENSTACK_RELEASE=$2
shift 2 shift 2
;; ;;
--proxy)
PROXY=$2
shift 2
;;
-h | --help ) -h | --help )
usage usage
exit 1 exit 1
@ -189,10 +195,18 @@ docker images --format '{{.Repository}}:{{.Tag}}' ${OS}:${OS_VERSION} | grep -q
BASE_IMAGE_PRESENT=$? BASE_IMAGE_PRESENT=$?
# Create the builder image # Create the builder image
docker build \ local -a BUILD_ARGS
--build-arg RELEASE=${OS_VERSION} \ BUILD_ARGS+=(--build-arg RELEASE=${OS_VERSION})
--build-arg OPENSTACK_RELEASE=${OPENSTACK_RELEASE} \ BUILD_ARGS+=(--build-arg OPENSTACK_RELEASE=${OPENSTACK_RELEASE})
-t ${BUILD_IMAGE_NAME} -f ${DOCKER_PATH}/${OS}-dockerfile ${DOCKER_PATH} if [ ! -z "$PROXY" ]; then
BUILD_ARGS+=(--build-arg http_proxy=$PROXY)
BUILD_ARGS+=(--build-arg https_proxy=$PROXY)
fi
BUILD_ARGS+=(-t ${BUILD_IMAGE_NAME})
BUILD_ARGS+=(-f ${DOCKER_PATH}/${OS}-dockerfile ${DOCKER_PATH})
# Build image
docker build "${BUILD_ARGS[@]}"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Failed to create build image in docker" >&2 echo "Failed to create build image in docker" >&2
exit 1 exit 1
@ -203,7 +217,16 @@ RM_OPT=
if [ "${KEEP_CONTAINER}" = "no" ]; then if [ "${KEEP_CONTAINER}" = "no" ]; then
RM_OPT="--rm" RM_OPT="--rm"
fi fi
docker run ${RM_OPT} -v ${BUILD_OUTPUT_PATH}:/wheels ${BUILD_IMAGE_NAME} /docker-build-wheel.sh
local -a RUN_ARGS
if [ ! -z "$PROXY" ]; then
RUN_ARGS+=(--env http_proxy=$PROXY)
RUN_ARGS+=(--env https_proxy=$PROXY)
fi
RUN_ARGS+=(${RM_OPT} -v ${BUILD_OUTPUT_PATH}:/wheels ${BUILD_IMAGE_NAME} /docker-build-wheel.sh)
# Run container to build wheels
docker run ${RUN_ARGS[@]}
if [ "${KEEP_IMAGE}" = "no" ]; then if [ "${KEEP_IMAGE}" = "no" ]; then
# Delete the builder image # Delete the builder image

View File

@ -21,6 +21,7 @@ OS_VERSION=7.5.1804
OPENSTACK_RELEASE=pike OPENSTACK_RELEASE=pike
VERSION=$(date --utc '+%Y.%m.%d.%H.%M') # Default version, using timestamp VERSION=$(date --utc '+%Y.%m.%d.%H.%M') # Default version, using timestamp
PUSH=no PUSH=no
PROXY=""
CLEAN=no CLEAN=no
DOCKER_USER=${USER} DOCKER_USER=${USER}
@ -51,13 +52,14 @@ Options:
--os-version: Specify OS version --os-version: Specify OS version
--release: Openstack release (default: pike) --release: Openstack release (default: pike)
--push: Push to docker repo --push: Push to docker repo
--proxy: Set proxy <URL>:<PORT>
--user: Docker repo userid --user: Docker repo userid
--version: Version for pushed image (if used with --push) --version: Version for pushed image (if used with --push)
EOF EOF
} }
OPTS=$(getopt -o h -l help,os:,os-version:,push,clean,user:,release:,version: -- "$@") OPTS=$(getopt -o h -l help,os:,os-version:,push,clean,user:,release:,proxy:,version: -- "$@")
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
usage usage
exit 1 exit 1
@ -96,6 +98,10 @@ while true; do
OPENSTACK_RELEASE=$2 OPENSTACK_RELEASE=$2
shift 2 shift 2
;; ;;
--proxy)
PROXY=$2
shift 2
;;
--version) --version)
VERSION=$2 VERSION=$2
shift 2 shift 2
@ -126,7 +132,13 @@ if [ ${VALID_OS} -ne 0 ]; then
fi fi
# Build the base wheels and retrieve the StarlingX wheels # Build the base wheels and retrieve the StarlingX wheels
${MY_SCRIPT_DIR}/build-base-wheels.sh --os ${OS} --os-version ${OS_VERSION} --release ${OPENSTACK_RELEASE} local -a BUILD_BASE_WL_ARGS
BUILD_BASE_WL_ARGS+=(--os ${OS} --os-version ${OS_VERSION} --release ${OPENSTACK_RELEASE})
if [ ! -z "$PROXY" ]; then
BUILD_BASE_WL_ARGS+=(--proxy ${PROXY})
fi
${MY_SCRIPT_DIR}/build-base-wheels.sh ${BUILD_BASE_WL_ARGS[@]}
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Failure running build-base-wheels.sh" >&2 echo "Failure running build-base-wheels.sh" >&2
exit 1 exit 1