websoft9/scripts/containers_version.sh

58 lines
2.1 KiB
Bash
Raw Normal View History

2022-07-15 14:55:40 +08:00
#!/bin/bash
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
2022-07-15 15:57:02 +08:00
# get applist
2022-07-15 16:02:54 +08:00
if [ -d StackHub ] ; then
echo "StackHub is exists"
else
git clone --depth=1 https://github.com/Websoft9/StackHub.git
fi
2022-07-15 15:57:02 +08:00
appnames=$(ls StackHub/apps/roles |grep -v Template |grep -v README.md |grep -v role)
2022-07-15 16:40:03 +08:00
2022-07-18 11:42:49 +08:00
targetlist=""
2022-07-16 16:17:22 +08:00
2022-07-16 08:58:18 +08:00
# get all of the running container's information( containername and imagename)
for appinfo in $(docker ps --format '{{.Names}}%{{.Image}}'); do
containername=$(echo $appinfo |awk -F"%" '{print $1}')
imagename=$(echo $appinfo |awk -F"%" '{print $2}')
2022-07-16 16:17:22 +08:00
for appname in $appnames; do
2022-07-18 08:44:39 +08:00
2022-07-16 08:58:18 +08:00
if [[ $containername == $appname ]];then
2022-07-18 11:42:49 +08:00
if [[ $targetlist =~ $appname ]];then
2022-07-18 08:44:39 +08:00
continue
fi
2022-07-26 14:47:27 +08:00
echo "$containername容器名匹配成功app:$appname"
2022-07-18 11:42:49 +08:00
targetlist="$targetlist $appname"
2022-07-18 09:04:06 +08:00
wget -O /tmp/$appname_get_version.sh https://raw.githubusercontent.com/Websoft9/docker-$appname/main/src/get_version.sh
bash /tmp/$appname_get_version.sh $containername
break
2022-07-16 08:58:18 +08:00
elif [[ $imagename =~ $appname ]];then
2022-07-18 11:42:49 +08:00
if [[ $targetlist =~ $appname ]];then
2022-07-18 08:44:39 +08:00
continue
fi
tmpvar="-"
if [[ $containername =~ $tmpvar ]];then
2022-07-26 14:47:27 +08:00
echo "$imagename=镜像名匹配成功app:$appname, and容器名是$containername"
2022-07-18 11:42:49 +08:00
targetlist="$targetlist $appname"
2022-07-18 09:04:06 +08:00
wget -O /tmp/$appname_get_version.sh https://raw.githubusercontent.com/Websoft9/docker-$appname/main/src/get_version.sh
bash /tmp/$appname_get_version.sh $containername
break
2022-07-18 09:04:45 +08:00
fi
2022-07-15 16:40:03 +08:00
else
2022-07-18 09:40:31 +08:00
realapp=echo $containername|awk -F"-" '{print $1}'
services=docker compose -p $realapp ps --services
for service in $services; do
if [[ $service == $appname ]];then
2022-07-26 14:47:27 +08:00
echo "$service服务名匹配成功app:$appname, and容器名是$containername"
2022-07-18 11:42:49 +08:00
targetlist="$targetlist $appname"
2022-07-18 09:40:31 +08:00
wget -O /tmp/$appname_get_version.sh https://raw.githubusercontent.com/Websoft9/docker-$appname/main/src/get_version.sh
bash /tmp/$appname_get_version.sh $containername
break
fi
done
2022-07-15 16:40:03 +08:00
fi
2022-07-16 08:58:18 +08:00
done
2022-07-15 15:57:02 +08:00
done