G

Untitled

public
Guest Jun 13, 2024 Never 18
Clone
Plaintext paste1.txt 20 lines (16 loc) | 869 Bytes
1
#!/bin/bash
2
3
# Ustawienie daty przedziału na 2 tygodnie wstecz
4
DATE=$(date -d '2 weeks ago' +%Y-%m-%dT%H:%M:%S)
5
6
# Wylistowanie wszystkich obrazów używanych przez serwisy w klastrze
7
USED_IMAGES=$(docker service ls --format "{{.Image}}" | sort | uniq)
8
9
# Wylistowanie obrazów, które nie są aktualnie używane i są starsze niż 2 tygodnie
10
IMAGES=$(docker images --filter "dangling=false" --format "{{.Repository}}:{{.Tag}} {{.CreatedAt}}" | awk -v date="$DATE" '$2 < date {print $1}')
11
12
# Przechodzenie przez listę obrazów i sprawdzanie, czy są używane przez serwisy w klastrze
13
for IMAGE in $IMAGES; do
14
if ! echo "${USED_IMAGES}" | grep -q "${IMAGE}"; then
15
echo "Usuwanie obrazu: $IMAGE"
16
docker rmi $IMAGE
17
else
18
echo "Obraz ${IMAGE} jest używany przez serwisy w klastrze i nie będzie usunięty."
19
fi
20
done