Как я знаю, когда получение по запросу докера обновляет изображение?

У меня есть скрипт, который я запускаю для обновления изображений и затем stop -> rm -> run их снова. К сожалению, последние 3 шага происходят даже если pull не обновил изображение (т.е. это уже актуально). Как я могу изменить свой сценарий удара так, чтобы он только выполнил последние 3 команды, если получение по запросу обновило изображение?

#!/usr/bin/env bash
set -e

docker pull linuxserver/sonarr
docker stop sonarr
docker rm sonarr
./run-sonarr.sh

docker pull linuxserver/radarr
docker stop radarr
docker rm radarr
./run-radarr.sh

docker pull linuxserver/nzbget
docker stop nzbget
docker rm nzbget
./run-nzbget.sh

docker pull plexinc/pms-docker
docker stop plex
docker rm plex
./run-plex.sh
0
задан 12 September 2018 в 17:21

2 ответа

Можно просто проверить, актуальна ли строка "Изображение", не присутствует:

...
export LANG=C
if ! docker pull linuxserver/sonarr | grep "Image is up to date"; then
    docker stop sonarr
    docker rm sonarr
    ./run-sonarr.sh
fi
...
1
ответ дан 27 October 2019 в 23:39

Можно получить идентификаторы изображения прежде и после получения по запросу и сравнить их:

docker images --format '{{.ID}}' <your image>

Например:

# ID of current image
~/ >docker images --format '{{.ID}}' tomcat:latest
d636936d0d85

# Pull it (updated this time)
~/ >docker pull tomcat:latest
latest: Pulling from library/tomcat
05d1a5232b46: Pull complete 
5cee356eda6b: Pull complete 
89d3385f0fd3: Pull complete 
65dd87f6620b: Pull complete 
78a183a01190: Pull complete 
1a4499c85f97: Pull complete 
2c9d39b4bfc1: Pull complete 
1b1cec2222c9: Pull complete 
fc95b85a81f3: Pull complete 
0f3868647539: Pull complete 
9b6a6eddb2d9: Pull complete 
8787183cb077: Pull complete 
Digest: sha256:d789f1dc613ef36a24c29f36bdef4891907cd854a5723c73acf6ba78dfc9ac78
Status: Downloaded newer image for tomcat:latest

# ID of new image (different)
~/ >docker images --format '{{.ID}}' tomcat:latest
41a54fe1f79d

# Pull again
~/ >docker pull tomcat:latest
latest: Pulling from library/tomcat
Digest: sha256:d789f1dc613ef36a24c29f36bdef4891907cd854a5723c73acf6ba78dfc9ac78
Status: Image is up to date for tomcat:latest

# Same ID
~/ >docker images --format '{{.ID}}' tomcat:latest
41a54fe1f79d
1
ответ дан 27 October 2019 в 23:39

Другие вопросы по тегам:

Похожие вопросы: