mirror of
https://github.com/dunwu/linux-tutorial.git
synced 2024-04-15 19:55:24 +08:00
80 lines
2.1 KiB
Bash
80 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
LINUX_SCRIPTS_LIB_DIR=`dirname ${BASH_SOURCE[0]}`
|
|
source ${LINUX_SCRIPTS_LIB_DIR}/utils.sh
|
|
|
|
dockerBuild() {
|
|
if [[ ! $1 ]] || [[ ! $2 ]] || [[ ! $3 ]]; then
|
|
logError "you must input following params in order:"
|
|
echo -e "${ENV_COLOR_B_RED}"
|
|
echo " (1) source"
|
|
echo " (2) repository"
|
|
echo " (3) tag"
|
|
echo -e "\nEg. dockerBuild /home/workspace tdh60dev01:5000/fide/fide-processor fide-0.0.6-SNAPSHOT"
|
|
echo -e "${ENV_COLOR_RESET}"
|
|
return ${ENV_FAILED}
|
|
fi
|
|
|
|
local source=$1
|
|
local repository=$2
|
|
local tag=$3
|
|
|
|
dockerCheck ${source}
|
|
if [[ "${ENV_SUCCEED}" != "$?" ]]; then
|
|
return ${ENV_FAILED}
|
|
fi
|
|
|
|
cd ${source}
|
|
callAndLog docker build -t ${repository}:${tag} .
|
|
if [[ "${ENV_SUCCEED}" != "$?" ]]; then
|
|
logError "docker build -t ${repository}:${tag} failed"
|
|
return ${ENV_FAILED}
|
|
fi
|
|
|
|
cd -
|
|
}
|
|
|
|
dockerPush() {
|
|
if [[ ! $1 ]] || [[ ! $2 ]]; then
|
|
logError "you must input following params in order:"
|
|
echo -e "${ENV_COLOR_B_RED}"
|
|
echo " (1) repository"
|
|
echo " (2) tag"
|
|
echo -e "\nEg. dockerBuild tdh60dev01:5000/fide/fide-processor fide-0.0.6-SNAPSHOT"
|
|
echo -e "${ENV_COLOR_RESET}"
|
|
return ${ENV_FAILED}
|
|
fi
|
|
|
|
local repository=$1
|
|
local tag=$2
|
|
|
|
local dockerHashId=$(docker image ls | grep ${repository} | grep ${tag} | awk '{print $3}')
|
|
if [[ ! ${dockerHashId} ]]; then
|
|
logInfo "try to delete existed image: ${repository}:${tag}"
|
|
callAndLog docker rmi ${dockerHashId}
|
|
fi
|
|
|
|
logInfo "try to push new image: ${repository}:${tag}"
|
|
callAndLog docker push ${repository}:${tag}
|
|
}
|
|
|
|
# check Dockerfile
|
|
# @param $1: project path
|
|
dockerCheck() {
|
|
local source=$1
|
|
if [[ -d "${source}" ]]; then
|
|
cd ${source}
|
|
if [[ -f "${source}/Dockerfile" ]]; then
|
|
return ${ENV_YES}
|
|
else
|
|
logError "Dockerfile is not exists"
|
|
return ${ENV_NO}
|
|
fi
|
|
cd -
|
|
return ${ENV_YES}
|
|
else
|
|
logError "${source} is not valid docker project"
|
|
return ${ENV_NO}
|
|
fi
|
|
}
|