betrachtet man von einem Build zum anderen docker inspect image_name
, ändern sich verschiedene Informationen nicht, wenn sich das Docker-Image nicht geändert hat. Einer von ihnen ist der Hafenarbeiter Id
. Also habe ich die Id
Informationen verwendet, um zu überprüfen, ob ein Andockfenster wie folgt geändert wurde. Erstens kann man das Bild Id
erhalten wie folgt:
docker inspect --format {{.Id}} docker_image_name
Um zu prüfen ob es eine Änderung nach einem Build ist, können Sie die folgenden Schritte aus:
- das Bild-ID erhalten, bevor der Build
- Bild
- bekommen die Bild-ID nach dem Build
- Vergleichen Sie die beiden IDs, wenn sie dort keine Änderung, wenn sie nicht viel tun, gab es eine Änderung.
Konkret ist hier ein Arbeits bash Beispiel
docker inspect --format {{.Id}} docker_image_name > deploy/last_image_build_id.log
# I get the docker last image id from a file
last_docker_id=$(cat deploy/last_image_build_id.log)
docker build -t docker_image_name .
docker_id_after_build=$(docker inspect --format {{.Id}} docker_image_name
if [ "$docker_id_after_build" != "$last_docker_id" ]; then
echo "image changed"
else
echo "image didn't change"
fi
Was/wie würden Sie es erkennen? Ein laufender Prozess? Wenn du es rennst? – johnharris85
Wie @ldg in seiner Antwort vorschlägt, denke ich, dass ich nach "dry-run" -Option oder ähnlichem suche. –