aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/roles/docker/tasks/prune.yml
blob: 614813c7f46754ba4de34bbc51672a7b921f76eb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
- name: Collect service facts
  community.general.systemd_info:
    unitname:
      - docker.service
      - docker.socket
  failed_when:
    docker_systemd_info.msg is defined
        and 'No units match any of the provided patterns' not in docker_systemd_info.msg
# ^^^ On fresh installations, systemctl list-units (which is what systemd_info
# does, it doesn't show the Docker units at all, don't exactly understand why.
  register: docker_systemd_info

- name: Clean up docker data
  when: |
    docker_systemd_info.units is defined
        and (docker_systemd_info.units['docker.service'].substate == 'running'
            or docker_systemd_info.units['docker.socket'].substate == 'listening'
            or docker_systemd_info.units['docker.socket'].substate == 'running')
  become: true
  block:
    # Dependencies of the community.docker.docker_prune Ansible module:
    - name: Install module dependencies
      ansible.builtin.package:
        name: '{{ docker_prune_module_deps }}'
        state: present

    - name: Run docker system prune
      community.docker.docker_prune:
        builder_cache: true
        containers: true
        images: true
        images_filters:
          dangling: false
        networks: true
        volumes: true