38 lines
1.1 KiB
YAML
38 lines
1.1 KiB
YAML
name: Purge logs
|
|
|
|
# Die Datenschutzerklaerung sagt: Logfiles werden nach spaetestens 4 Wochen geloescht.
|
|
# Docker loescht das Log eines Containers beim Neuerstellen. Der Job laeuft taeglich
|
|
# und prueft das Alter, damit ein ausgefallener Lauf am naechsten Tag nachgeholt wird.
|
|
on:
|
|
schedule:
|
|
- cron: "0 3 * * *"
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: purge-logs
|
|
|
|
jobs:
|
|
purge:
|
|
runs-on: deploy-host
|
|
|
|
steps:
|
|
- name: Recreate containers once their logs are 27 days old
|
|
run: |
|
|
set -e
|
|
|
|
max_age_days=27
|
|
|
|
for target in portfolio:/opt/noctura/noctura fensterputzer:/opt/fensterputzer; do
|
|
container=${target%%:*}
|
|
dir=${target#*:}
|
|
|
|
created=$(docker inspect --format '{{.Created}}' "$container")
|
|
age_days=$(( ($(date +%s) - $(date -d "$created" +%s)) / 86400 ))
|
|
echo "$container log age: $age_days days"
|
|
|
|
if [ "$age_days" -ge "$max_age_days" ]; then
|
|
cd "$dir"
|
|
docker compose up -d --force-recreate --no-build
|
|
echo "$container log deleted"
|
|
fi
|
|
done
|