#!/bin/bash function usage { echo "Usage: ${0} " exit } CvttpyVersion=${1} if [ "${CvttpyVersion}" == "" ] then usage fi # --- Settings ImageName=md_gateway RegistryService=cloud21.cvtt.vpn:5500 # --- Settings get_cvttpy() { Version=${1} Project=cvttpy host="cloud21.cvtt.vpn" port="22" user="cvttdist" rel_dir="/home/cvttdist/software/cvtt2" if [ "${Version}" == "latest" ]; then echo "Checking for latest version of ${Project} on ${user}@${host}:${rel_dir}" Version=$(ssh -q -p ${port} ${user}@${host} "ls -tr ${rel_dir}/${Project} | tail -1" ) echo "Latest version is ${Version}" fi echo "Checking ${user}@${host} for ${rel_dir}/${Project}/${Version} ..." if ssh -q -p ${port} ${user}@${host} "test -d ${rel_dir}/${Project}/${Version}" then echo "Version ${Version} found..." rsync_cmd="rsync -ahv -e \"ssh -p ${port}\"" rsync_cmd="${rsync_cmd} ${user}@${host}:${rel_dir}/${Project}/${Version}/" rsync_cmd="${rsync_cmd} ./" echo ${rsync_cmd} eval ${rsync_cmd} status=$? if [ ${status} -eq 0 ] then echo "Loading successful..." exit 1 fi else echo "Not Found ${rel_dir}/${Project}/${Version} on ${user}@${host}" fi } DockerDir=$(realpath $(dirname ${0})) Version=${CvttpyVersion} cd ${DockerDir} get_cvttpy ${Version} function cleanup { cd ${DockerDir} rm -rf cvttpy } trap cleanup EXIT Cmd="docker build" Cmd+=" -t ${ImageName}" Cmd+=" -t ${ImageName}:latest" Cmd+=" -t ${ImageName}:${Version}" Cmd+=" -f Dockerfile" Cmd+=" ." echo ${Cmd} eval ${Cmd} || exit Cmd="docker tag ${ImageName}:latest ${RegistryService}/${ImageName}:latest" echo ${Cmd} eval ${Cmd} || exit Cmd="docker tag ${ImageName}:${Version} ${RegistryService}/${ImageName}:${Version}" echo ${Cmd} eval ${Cmd} || exit Cmd="docker push ${RegistryService}/${ImageName}:latest" echo ${Cmd} eval ${Cmd} || exit Cmd="docker push ${RegistryService}/${ImageName}:${Version}" echo ${Cmd} eval ${Cmd} || exit