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