diff --git a/defaults/main.yml b/defaults/main.yml index 4bffbcd..977077a 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -61,4 +61,5 @@ docker_label_state_mode: merge docker_node_labels: [] # - { key: 'key_name', value: 'label_value' } -docker_restart_daemon_cronjob: false \ No newline at end of file +docker_restart_daemon_cronjob: false +docker_prune_dangling_volumes: false \ No newline at end of file diff --git a/files/docker-prune-dangling-images.sh b/files/docker-prune-dangling-images.sh index d22e905..b7a11a1 100644 --- a/files/docker-prune-dangling-images.sh +++ b/files/docker-prune-dangling-images.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash # "system" prune, because pruning images only leaves a lot of garbage around -docker system prune --force > /var/log/docker-prune.log 2>&1 +docker volume prune --force > /var/log/docker-volume-prune.log 2>&1 exit 0 diff --git a/files/docker-prune-dangling-volumes.sh b/files/docker-prune-dangling-volumes.sh new file mode 100644 index 0000000..d22e905 --- /dev/null +++ b/files/docker-prune-dangling-volumes.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +# "system" prune, because pruning images only leaves a lot of garbage around +docker system prune --force > /var/log/docker-prune.log 2>&1 +exit 0 diff --git a/tasks/docker_setup.yml b/tasks/docker_setup.yml index 295e642..24f8f8e 100644 --- a/tasks/docker_setup.yml +++ b/tasks/docker_setup.yml @@ -106,6 +106,41 @@ when: docker_install tags: [docker, docker_restart_daemon_cronjob] +- name: Cron job that prunes the dangling volumes + block: + - name: Install a script that prunes the docker dangling volumes + copy: + src: docker-prune-dangling-volumes.sh + dest: /usr/local/sbin/docker-prune-dangling-volumes + owner: root + group: root + mode: 0744 + + - name: Install a cron job that prunes the docker volumes + cron: + name: Prune docker volumes + cron_file: docker-prune-volumes + special_time: daily + user: root + state: present + job: "/usr/local/sbin/docker-prune-dangling-volumes" + when: docker_prune_dangling_volumes + + - name: Disable the cron job that prunes the docker volumes + cron: + name: Prune docker volumes + cron_file: docker-prune-volumes + special_time: daily + user: root + state: absent + job: "/usr/local/sbin/docker-prune-dangling-volumes" + when: not docker_prune_dangling_volumes + + when: docker_install + tags: [docker, docker_prune_volumes] + + + - block: - name: Remove the docker user user: name=docker state=absent