92 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
function usage {
echo "Usage: ${0} <version>"
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