summaryrefslogtreecommitdiffstatshomepage
path: root/roles/docker/tasks/prune.yml
blob: 3167ee6de6600eeefd98bfb25abd555cb71642a0 (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
36
37
38
39
40
41
42
# Temporarily disable the services; systemd_info below uses systemctl list-units,
# and it doesn't seem to update its info right after installation (so, list-units
# doesn't show the Docker units); hopefully, disabling them will make them
# appear in list-units output, idk.
- name: Disable Docker services
  become: true
  ansible.builtin.systemd_service:
    name: '{{ item }}'
    enabled: false
  loop:
    - docker.service
    - docker.socket

- name: Collect service facts
  community.general.systemd_info:
    unitname:
      - docker.service
      - docker.socket
  register: docker_systemd_info

- name: Clean up docker data
  become: true
  when: |
    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'
  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