docker(role): move automatic cleanup of unused Docker data here
All checks were successful
/ Ansible Lint (push) Successful in 2m20s

Move the automatic cleanup of unused Docker data to the docker role from
the docker_compose role, so that hosts, which only use Docker (like
renovate) also have an automatic cleanup set up.
Also use a systemd timer instead of cron.
This commit is contained in:
June 2026-03-06 21:09:47 +01:00
commit 2b5f261cd3
Signed by: june
SSH key fingerprint: SHA256:o9EAq4Y9N9K0pBQeBTqhSDrND5E7oB+60ZNx0U1yPe0
6 changed files with 53 additions and 8 deletions

View file

@ -0,0 +1,8 @@
[Unit]
Description=cleanup unused docker data
After=network-online.target docker.service
Wants=network-online.target docker.service
[Service]
Type=oneshot
ExecStart=/usr/bin/docker system prune --all --force

View file

@ -0,0 +1,9 @@
[Unit]
Description=cleanup unused docker data every day
[Timer]
OnCalendar=daily
RandomizedDelaySec=1h
[Install]
WantedBy=timers.target

View file

@ -0,0 +1,4 @@
- name: systemd daemon reload
ansible.builtin.systemd_service:
daemon_reload: true
become: true

View file

@ -9,3 +9,7 @@
- name: Ensure Docker daemon configuration
ansible.builtin.import_tasks:
file: main/03_docker_config.yaml
- name: Ensure automatic cleanup of unused Docker data is set up
ansible.builtin.import_tasks:
file: main/04_docker_auto_cleanup.yaml

View file

@ -0,0 +1,28 @@
- name: ensure systemd service exists
ansible.builtin.copy:
src: docker-cleanup.service
dest: /etc/systemd/system/docker-cleanup.service
owner: root
group: root
mode: "0644"
become: true
notify:
- systemd daemon reload
- name: ensure systemd timer exists
ansible.builtin.copy:
src: docker-cleanup.timer
dest: /etc/systemd/system/docker-cleanup.timer
owner: root
group: root
mode: "0644"
become: true
notify:
- systemd daemon reload
- name: ensure systemd timer is started and enabled
ansible.builtin.systemd_service:
name: docker-cleanup.timer
state: started
enabled: true
become: true