diff --git a/packaging/docker/dockerbuild.sh b/packaging/docker/dockerbuild.sh index 2483973111a871a0cc958675531cb8a85d73fdac..3a2e10a27f47938bc5d5a69e3ac472a31a674a05 100755 --- a/packaging/docker/dockerbuild.sh +++ b/packaging/docker/dockerbuild.sh @@ -18,8 +18,9 @@ version="" passWord="" pkgFile="" verType="stable" +dockerLatest="n" -while getopts "hc:n:p:f:V:" arg +while getopts "hc:n:p:f:V:a:b:" arg do case $arg in c) @@ -38,17 +39,25 @@ do #echo "pkgFile=$OPTARG" pkgFile=$(echo $OPTARG) ;; + b) + #echo "branchName=$OPTARG" + branchName=$(echo $OPTARG) + ;; V) #echo "verType=$OPTARG" verType=$(echo $OPTARG) ;; + a) + #echo "dockerLatest=$OPTARG" + dockerLatest=$(echo $OPTARG) + ;; h) echo "Usage: `basename $0` -c [aarch32 | aarch64 | amd64 | x86 | mips64 ...] " echo " -n [version number] " echo " -p [password for docker hub] " echo " -V [stable | beta] " echo " -f [pkg file] " - + echo " -a [y | n ] " exit 0 ;; ?) #unknow option @@ -58,13 +67,11 @@ do esac done -# if [ "$verType" == "beta" ]; then -# pkgFile=TDengine-server-${version}-Linux-${cpuType}-${verType}.tar.gz -# elif [ "$verType" == "stable" ]; then -# pkgFile=TDengine-server-${version}-Linux-${cpuType}.tar.gz -# else -# echo "unknow verType, nor stabel or beta" -# exit 1 + +# Check_verison() +# { +# } + if [ "$verType" == "beta" ]; then dockername=${cpuType}-${verType} @@ -84,6 +91,9 @@ echo "====NOTES: ${pkgFile} must be in the same directory as dockerbuild.sh====" scriptDir=$(dirname $(readlink -f $0)) comunityArchiveDir=/nas/TDengine/v$version/community # community version’package directory +communityDir=${scriptDir}/../../../community +DockerfilePath=${communityDir}/packaging/docker/ +Dockerfile=${communityDir}/packaging/docker/Dockerfile cd ${scriptDir} cp -f ${comunityArchiveDir}/${pkgFile} . @@ -100,13 +110,65 @@ else exit 1 fi -docker build --rm -f "Dockerfile" --network=host -t tdengine/tdengine-${dockername}:${version} "." --build-arg pkgFile=${pkgFile} --build-arg dirName=${dirName} --build-arg cpuType=${cpuTypeAlias} +docker build --rm -f "${Dockerfile}" --network=host -t tdengine/tdengine-${dockername}:${version} "." --build-arg pkgFile=${pkgFile} --build-arg dirName=${dirName} --build-arg cpuType=${cpuTypeAlias} docker login -u tdengine -p ${passWord} #replace the docker registry username and password docker push tdengine/tdengine-${dockername}:${version} -# set this version to latest version -docker tag tdengine/tdengine-${dockername}:${version} tdengine/tdengine-${dockername}:latest -docker push tdengine/tdengine-${dockername}:latest +if [ -n "$(docker ps -aq)" ] ;then + echo "delte docker process" + docker stop $(docker ps -aq) + docker rm $(docker ps -aq) +fi + +if [ -n "$(pidof taosd)" ] ;then + echo "kill taosd " + kill -9 $(pidof taosd) +fi + +if [ -n "$(pidof power)" ] ;then + echo "kill power " + kill -9 $(pidof power) +fi +echo ">>>>>>>>>>>>> check whether tdengine/tdengine-${dockername}:${version} has been published" +docker run -d --name doctest -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp tdengine/tdengine-${dockername}:${version} +sleep 2 +curl -u root:taosdata -d 'show variables;' 127.0.0.1:6041/rest/sql > temp1.data +data_version=$( cat temp1.data |jq .data| jq '.[]' |grep "version" -A 2 -B 1 | jq ".[1]") +echo "${data_version}" +if [ "${data_version}" == "\"${version}\"" ] ; then + echo "docker version is right " +else + echo "docker version is wrong " + exit 1 +fi +rm -rf temp1.data + +# set this version to latest version +if [ ${dockerLatest} == 'y' ] ;then + docker tag tdengine/tdengine-${dockername}:${version} tdengine/tdengine-${dockername}:latest + docker push tdengine/tdengine-${dockername}:latest + echo ">>>>>>>>>>>>> check whether tdengine/tdengine-${dockername}:latest has been published correctly" + docker run -d --name doctestla -p 7030-7049:6030-6049 -p 7030-7049:6030-6049/udp tdengine/tdengine-${dockername}:latest + sleep 2 + curl -u root:taosdata -d 'show variables;' 127.0.0.1:7041/rest/sql > temp2.data + version_latest=` cat temp2.data |jq .data| jq '.[]' |grep "version" -A 2 -B 1 | jq ".[1]" ` + echo "${version_latest}" + if [ "${version_latest}" == "\"${version}\"" ] ; then + echo "docker version is right " + else + echo "docker version is wrong " + exit 1 + fi +fi +rm -rf temp2.data + +if [ -n "$(docker ps -aq)" ] ;then + echo "delte docker process" + docker stop $(docker ps -aq) + docker rm $(docker ps -aq) +fi + +cd ${scriptDir} rm -f ${pkgFile}