diff options
author | Bartek Grzybowski <b.grzybowski@partner.samsung.com> | 2020-10-22 11:40:20 +0200 |
---|---|---|
committer | Bartek Grzybowski <b.grzybowski@partner.samsung.com> | 2020-10-26 10:27:18 +0000 |
commit | 15d5ffb98130044599995c4a40f10e6153290b0d (patch) | |
tree | a94d08136973e412086449bfb11db9aa32975211 | |
parent | 8583bf98b526c23d487f0159401a65400fb044fa (diff) |
Push all images to simulated Docker registry only
In previous implementation all images were pushed to
their original registries which were simulated locally.
This change retags all images to locally simulated docker
registry only and pushes them there accordingly.
Created temporary tag is dropped at the end for order.
Change-Id: If1b6633fdcc13d47c6e2b26792980320dce7f49a
Issue-ID: OOM-2605
Signed-off-by: Bartek Grzybowski <b.grzybowski@partner.samsung.com>
-rwxr-xr-x | build/build_nexus_blob.sh | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/build/build_nexus_blob.sh b/build/build_nexus_blob.sh index b41d6cab..fe69181d 100755 --- a/build/build_nexus_blob.sh +++ b/build/build_nexus_blob.sh @@ -175,12 +175,10 @@ push_pip () { } docker_login () { - for REGISTRY in $(sed -n '/\.[^/].*\//p' ${1} | sed -e 's/\/.*$//' | sort -u | grep -v ${DEFAULT_REGISTRY}) ${DOCKER_REGISTRY}; do - if ! grep -wqs ${REGISTRY} ~/.docker/config.json; then - echo "Docker login to ${REGISTRY}" - echo -n "${NEXUS_PASSWORD}" | docker login -u "${NEXUS_USERNAME}" --password-stdin ${REGISTRY} > /dev/null - fi - done + if ! grep -wqs ${DOCKER_REGISTRY} ~/.docker/config.json; then + echo "Docker login to ${DOCKER_REGISTRY}" + echo -n "${NEXUS_PASSWORD}" | docker login -u "${NEXUS_USERNAME}" --password-stdin ${DOCKER_REGISTRY} > /dev/null + fi } push_docker () { @@ -196,13 +194,15 @@ push_docker () { fi elif [[ -z $(sed -n '/\.[^/].*\//p' <<< ${IMAGE}) ]]; then PUSH="${DOCKER_REGISTRY}/${IMAGE}" - fi - if [[ ! -z ${PUSH} ]]; then - docker tag ${IMAGE} ${PUSH} else - PUSH="${IMAGE}" + # substitute all host names with $DOCKER_REGISTRY + repo_host=$(sed -e 's/\/.*$//' <<< ${IMAGE}) + PUSH="$(sed -e 's/'"${repo_host}"'/'"${DOCKER_REGISTRY}"'/' <<< ${IMAGE})" fi - docker push ${PUSH} + docker tag ${IMAGE} ${PUSH} + docker push ${PUSH} + # Remove created tag + docker rmi ${PUSH} echo "${IMAGE} pushed as ${PUSH} to Nexus" done } @@ -436,12 +436,12 @@ fi ## Populate Docker repository # ############################### -# Login to simulated docker registries +# Login to docker registry simulated by Nexus container # Push images to private nexus based on the lists -# Images from default registry need to be tagged to private registry -# and those without defined repository in tag uses default repository 'library' +# All images need to be tagged to simulated registry +# and those without defined repository in tag use default repository 'library' +docker_login for DOCKER_IMG_LIST in "${NXS_DOCKER_IMG_LISTS[@]}"; do - docker_login "${DOCKER_IMG_LIST}" push_docker "${DOCKER_IMG_LIST}" done |