구버전 이미지 삭제 스크립트
This commit is contained in:
30
delete.sh
Normal file
30
delete.sh
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
ENV_FILE="./.env"
|
||||||
|
|
||||||
|
declare -A IMAGE_VERSION_MAP
|
||||||
|
while IFS='=' read -r key value; do
|
||||||
|
if [[ $key == *_IMAGE && $value == maxgauge/exemone-* ]]; then
|
||||||
|
image_key=${key%_IMAGE}
|
||||||
|
IMAGE=${value}
|
||||||
|
elif [[ $key == *_VERSION && -n $IMAGE && ${key%_VERSION} == $image_key ]]; then
|
||||||
|
IMAGE_VERSION_MAP[$IMAGE]=$value
|
||||||
|
IMAGE=""
|
||||||
|
fi
|
||||||
|
done < "$ENV_FILE"
|
||||||
|
|
||||||
|
docker images --format '{{.Repository}}:{{.Tag}} {{.ID}}' | while read -r line; do
|
||||||
|
IMAGE_TAG=$(echo "$line" | awk '{print $1}')
|
||||||
|
IMAGE_ID=$(echo "$line" | awk '{print $2}')
|
||||||
|
|
||||||
|
REPOSITORY=$(echo "$IMAGE_TAG" | cut -d: -f1)
|
||||||
|
TAG=$(echo "$IMAGE_TAG" | cut -d: -f2)
|
||||||
|
|
||||||
|
if [[ $REPOSITORY == maxgauge/exemone-* ]]; then
|
||||||
|
EXPECTED_TAG=${IMAGE_VERSION_MAP[$REPOSITORY]}
|
||||||
|
if [[ -n $EXPECTED_TAG && $TAG != $EXPECTED_TAG ]]; then
|
||||||
|
echo "Deleting $IMAGE_TAG (ID: $IMAGE_ID)"
|
||||||
|
docker rmi "$IMAGE_ID"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
Reference in New Issue
Block a user