gpt4 book ai didi

docker-compose,我如何检查容器是否正在运行最后一个图像?并重新启动它

转载 作者:行者123 更新时间:2023-12-02 00:58:38 26 4
gpt4 key购买 nike

执行拉取后,我试图检查容器是否使用最后一个可用图像运行

像这样的东西

for container in $(docker-compose ps -q)
do
oldImage=$(docker inspect $container -f "{{.Image}}" | sed 's/sha256://')
imageName=$(docker inspect $container -f "{{.Config.Image}}")
newImage=$(docker image inspect $imageName -f "{{.Id}}" | sed 's/sha256://')
if [[ "$newImage" != "$oldImage" ]]; then
echo "new image found $imageName"
echo "new image $newImage"
echo "old image $oldImage"
echo "restaring ... "
fi
done

我可以检查容器的图像是否与可用的新图像不同,但我没有重新启动它的服务名称。

一些想法?

最佳答案

我找到了这个解决方案

#!/bin/bash
set -e

for serviceName in $(docker-compose config --services)
do
container=$(docker-compose ps -q $serviceName)
if [[ "$container" == "" ]]; then
continue
fi
oldImage=$(docker inspect $container -f "{{.Image}}" | sed 's/sha256://')
imageName=$(docker inspect $container -f "{{.Config.Image}}")
newImage=$(docker image inspect $imageName -f "{{.Id}}" | sed 's/sha256://')
if [[ "$newImage" != "$oldImage" ]]; then
echo "new image found $imageName"
echo "new image $newImage"
echo "old image $oldImage"
echo "restaring ... $serviceName"
set -v
docker-compose stop $serviceName
docker-compose up -d $serviceName
set -nv
fi
done

关于docker-compose,我如何检查容器是否正在运行最后一个图像?并重新启动它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52284511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com