#!/usr/bin/env bash #Variables SCRIPT_PATH=$0 CMD=$(basename "$0") REPO_IMAGE=${1} #Server with connection to internet SERVER=${2} #User and password for docker login on $SERVER REMOTE_USER= REMOTE_PASSWD= #User and password for docker login on localhost LOCAL_USER= LOCAL_PASSWD= IMAGE=`sed 's/^[^/]*\///g' <<< ${1}` help() { cat </: $SCRIPT_PATH /: --local-repo example.repository MANDATORY PARAMETERS: /: == image to be downloaded (e.g. nexus3.onap.org:10001/library/busybox:latest) == server with connection to internet and docker installed OPTIONAL PARAMETERS: --remote-user == user for docker login on --remote-passwd == password for cicd-user --local-user == user for docker login on localhost --local-passwd == password for local-user --local-repo == local repository where new image should be pushed EOF } if [ $# -lt 2 ]; then help exit 1 fi #Set up parameters while [[ $# -gt 2 ]]; do case $3 in --remote-user) REMOTE_USER=$4 ;; --remote-passwd) REMOTE_PASSWD=$4 ;; --local-user) LOCAL_USER=$4 ;; --local-passwd) LOCAL_PASSWD=$4 ;; --local-repo) LOCAL_REPO=$4 ;; -h | --help) help exit 0 ;; *) help exit 1 ;; esac shift 2 done REMOTE_USER=${REMOTE_USER:-jenkins} REMOTE_PASSWD=${REMOTE_PASSWD:-jenkins} LOCAL_USER=${LOCAL_USER:-admin} LOCAL_PASSWD=${LOCAL_PASSWD:-admin123} LOCAL_REPO=${LOCAL_REPO:-nexus3.onap.org:10001} # Login to CICD server, pull image and push it into CICD nexus repo /usr/bin/ssh -oStrictHostKeyChecking=no $SERVER << EOF set -e docker pull $REPO_IMAGE docker tag $REPO_IMAGE $SERVER/$IMAGE docker login -u $REMOTE_USER -p $REMOTE_PASSWD $SERVER docker push $SERVER/$IMAGE docker rmi $REPO_IMAGE docker rmi $SERVER/$IMAGE EOF if [ $? -eq 1 ] then exit 1 fi # Download image from CICD nexus repo and push it into local repo docker pull $SERVER/$IMAGE docker tag $SERVER/$IMAGE $LOCAL_REPO/$IMAGE docker login -u $LOCAL_USER -p $LOCAL_PASSWD $LOCAL_REPO docker push $LOCAL_REPO/$IMAGE docker rmi $SERVER/$IMAGE docker rmi $LOCAL_REPO/$IMAGE echo 'Done Successfully'