Files
grm/ansible/roles/gitea_runner/tasks/prune.yml
T
Emil SimeonovandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> e32ba51a7d fix: pre-configure daemon.json before rootless setuptool + add DBUS_SESSION_BUS_ADDRESS
Five fixes for rootless Docker setup on Arch Linux runners:

1. Write daemon.json (with containerd-snapshotter: false) BEFORE running
   dockerd-rootless-setuptool.sh, so Docker 29 starts with overlay2 from
   the very first boot instead of containerd snapshots.

2. Add DBUS_SESSION_BUS_ADDRESS to all systemctl --user tasks. Without it,
   systemctl --user fails with "Connection refused" on Arch Linux where
   the D-Bus session bus isn't auto-discovered.

3. Fix pre-configure override port driver: use 'builtin' for slirp4netns
   and 'implicit' only for pasta. The previous unconditional 'implicit'
   caused dockerd to exit immediately on slirp4netns hosts.

4. Fix prune timer schedule from '*-* * */6:00:00' (invalid) to
   '*-*-* 00/6:00:00' (every 6 hours, valid systemd calendar spec).

5. Add explicit Docker 29→28 downgrade task for Debian/Ubuntu using
   version-pinned apt install with allow_downgrades.

Closes GRM-158

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-05 23:46:47 +00:00

41 lines
1.5 KiB
YAML

---
- name: Create docker-prune user service file
ansible.builtin.template:
src: docker-prune.service.j2
dest: "{{ gitea_runner_home }}/.config/systemd/user/docker-prune.service"
owner: "{{ gitea_runner_service_user }}"
group: "{{ gitea_runner_service_user }}"
mode: "0644"
- name: Create docker-prune user timer file
ansible.builtin.template:
src: docker-prune.timer.j2
dest: "{{ gitea_runner_home }}/.config/systemd/user/docker-prune.timer"
owner: "{{ gitea_runner_service_user }}"
group: "{{ gitea_runner_service_user }}"
mode: "0644"
- name: Reload systemd user daemon for prune timer
ansible.builtin.command: systemctl --user daemon-reload
become: true
become_user: "{{ gitea_runner_service_user }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ gitea_runner_uid }}"
DBUS_SESSION_BUS_ADDRESS: "unix:path=/run/user/{{ gitea_runner_uid | default(0) }}/bus"
changed_when: true
when:
- gitea_runner_systemd_available.stat.exists
- gitea_runner_docker_rootless_setup
- name: Enable and start docker-prune user timer
ansible.builtin.command: systemctl --user enable --now docker-prune.timer
become: true
become_user: "{{ gitea_runner_service_user }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ gitea_runner_uid }}"
DBUS_SESSION_BUS_ADDRESS: "unix:path=/run/user/{{ gitea_runner_uid | default(0) }}/bus"
changed_when: true
when:
- gitea_runner_systemd_available.stat.exists
- gitea_runner_docker_rootless_setup