구버전 이미지 삭제 스크립트
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