diff options
| author | Sam Yaple <sam@yaple.net> | 2015-05-10 23:50:59 -0500 |
|---|---|---|
| committer | Sam Yaple <sam@yaple.net> | 2015-05-12 22:16:59 -0500 |
| commit | e057343c2fc712762397e065e660197530416b4f (patch) | |
| tree | 62d403b5c0ef6c3231cab9571bcf544b31d46f63 /tools | |
| parent | 52847aa1b92b20f6e60b28bdd3d9847964c547f7 (diff) | |
| download | kolla-e057343c2fc712762397e065e660197530416b4f.tar.gz kolla-e057343c2fc712762397e065e660197530416b4f.zip | |
Allow private docker registries
Change the sed seperator to accept a namespace with a private registry
and add an option to specify the registry. Below is an example for a
registry located at 192.168.0.10:5000.
$ ./build-all-docker-images -r 192.168.0.10:5000
The final image name would be something like this:
'192.168.0.10:5000/kollaglue/centos-rdo-base'
All build, push, and pull commands will still function the same.
Change-Id: Ic0ff96bb8119ddfab15b99e9f1e21cfe8d321dab
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/build-all-docker-images | 8 | ||||
| -rwxr-xr-x | tools/build-docker-image | 17 |
2 files changed, 20 insertions, 5 deletions
diff --git a/tools/build-all-docker-images b/tools/build-all-docker-images index c890b872b..50fd62015 100755 --- a/tools/build-all-docker-images +++ b/tools/build-all-docker-images @@ -73,6 +73,7 @@ function init_image { [ -f $WORKDIR/.buildconf ] && . $WORKDIR/.buildconf [ -f $img_dir/.buildconf ] && . $img_dir/.buildconf [ -n "$FORCE_NAMESPACE" ] && NAMESPACE=$FORCE_NAMESPACE + [ -n "${REGISTRY}" ] && NAMESPACE="${REGISTRY}/${NAMESPACE}" local image="${NAMESPACE:+${NAMESPACE}/}${PREFIX}${img_dir##*/}" local base_image=$(cat $img_dir/Dockerfile | gawk 'match($0, /^\s*FROM\s+(\S+)/, matches) {print matches[1]}' ) @@ -136,7 +137,7 @@ trap 'interrupted' INT ARGS=$@ -PARSED_ARGS=$(getopt -q -o hn: -l help,namespace:,from:,to: -- "$@") +PARSED_ARGS=$(getopt -q -o hr:n: -l help,namespace:,private-registry:,from:,to: -- "$@") eval set -- "$PARSED_ARGS" @@ -152,6 +153,11 @@ while :; do FORCE_NAMESPACE="$1" ;; + (--private-registry|-r) + shift + REGISTRY="$1" + ;; + (--from) shift FROM="$1" diff --git a/tools/build-docker-image b/tools/build-docker-image index 5d85f6263..c816fd089 100755 --- a/tools/build-docker-image +++ b/tools/build-docker-image @@ -15,6 +15,7 @@ Usage: $0 [options] Options: +--private-registry, -r <registry_address[:port]> --namespace, -n <namespace> --tag, -t <tag> --push, -p @@ -29,7 +30,7 @@ EOF [ -f $TOPDIR/.buildconf ] && . $TOPDIR/.buildconf [ -f $IMGDIR/.buildconf ] && . $IMGDIR/.buildconf -ARGS=$(getopt -o hn:t:pfuN -l help,namespace:,push,pull,release,tag:,force-rm,no-cache,no-use-released-parent -- "$@") || { usage >&2; exit 2; } +ARGS=$(getopt -o hr:n:t:pfuN -l help,namespace:,push,private-registry:,release,tag:,force-rm,no-cache,no-use-released-parent -- "$@") || { usage >&2; exit 2; } eval set -- "$ARGS" @@ -63,6 +64,11 @@ while :; do BUILDFLAGS="${BUILDFLAGS} --no-cache" ;; + (--private-registry|-r) + shift + REGISTRY="$1" + ;; + (--namespace|-n) shift NAMESPACE="$1" @@ -94,6 +100,9 @@ if [ "$NAMESPACE" = "$RELEASE_NAMESPACE" ] \ exit 1 fi +if [[ -n $REGISTRY ]]; then + NAMESPACE="${REGISTRY}/${NAMESPACE}" +fi IMAGE="${PREFIX}${IMGDIR##*/}" FULLIMAGE="${NAMESPACE}/${IMAGE}${TAG:+:${TAG}}" @@ -113,9 +122,9 @@ TMPDIR=$(mktemp -d /tmp/kolla-build.XXXXXXXXXX) cp -aL $IMGDIR/* $TMPDIR # Use an extension for in-place editing for portability, as GNU and BSD # versions of sed behave differently otherwise -sed -i.bak "s/%%KOLLA_NAMESPACE%%/${NAMESPACE}/g" $TMPDIR/Dockerfile -sed -i.bak "s/%%KOLLA_PREFIX%%/${PREFIX}/g" $TMPDIR/Dockerfile -sed -i.bak "s/%%KOLLA_TAG%%/${PARENT_TAG}/g" $TMPDIR/Dockerfile +sed -i.bak "s|%%KOLLA_NAMESPACE%%|${NAMESPACE}|g" $TMPDIR/Dockerfile +sed -i.bak "s|%%KOLLA_PREFIX%%|${PREFIX}|g" $TMPDIR/Dockerfile +sed -i.bak "s|%%KOLLA_TAG%%|${PARENT_TAG}|g" $TMPDIR/Dockerfile if ! docker build ${BUILDFLAGS} -t "$FULLIMAGE" $TMPDIR; then echo "ERROR: failed to build $FULLIMAGE" |
