docker: enable live-restore by merging daemon options into daemon.json
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
docker:
|
||||||
|
# Merged into /etc/docker/daemon.json; keys not listed here keep their host value.
|
||||||
|
daemon:
|
||||||
|
# Containers keep running while dockerd restarts or upgrades.
|
||||||
|
live-restore: true
|
||||||
@@ -2,3 +2,9 @@
|
|||||||
service:
|
service:
|
||||||
name: "docker"
|
name: "docker"
|
||||||
state: restarted
|
state: restarted
|
||||||
|
|
||||||
|
# SIGHUP applies the reloadable daemon.json options without stopping containers.
|
||||||
|
- name: reload_docker
|
||||||
|
service:
|
||||||
|
name: "docker"
|
||||||
|
state: reloaded
|
||||||
|
|||||||
@@ -59,6 +59,29 @@
|
|||||||
- pass
|
- pass
|
||||||
state: latest
|
state: latest
|
||||||
|
|
||||||
|
- name: Read daemon.json
|
||||||
|
ansible.builtin.slurp:
|
||||||
|
path: /etc/docker/daemon.json
|
||||||
|
register: docker_daemon_json
|
||||||
|
failed_when: false
|
||||||
|
tags: docker_daemon
|
||||||
|
|
||||||
|
- name: Merge daemon options into daemon.json
|
||||||
|
vars:
|
||||||
|
docker_daemon_current: "{{ (docker_daemon_json.content | b64decode | from_json) if docker_daemon_json.content is defined else {} }}"
|
||||||
|
docker_daemon_merged: "{{ docker_daemon_current | combine(docker.daemon) }}"
|
||||||
|
ansible.builtin.copy:
|
||||||
|
content: "{{ docker_daemon_merged | to_nice_json(indent=4, sort_keys=False) }}\n"
|
||||||
|
dest: /etc/docker/daemon.json
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0644"
|
||||||
|
validate: dockerd --validate --config-file=%s
|
||||||
|
# Rewritten only on a value change, so hand-written formatting survives otherwise.
|
||||||
|
when: docker_daemon_merged != docker_daemon_current
|
||||||
|
notify: reload_docker
|
||||||
|
tags: docker_daemon
|
||||||
|
|
||||||
- name: Deploy docker-compose command to new docker compose plugin
|
- name: Deploy docker-compose command to new docker compose plugin
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
src: docker-compose
|
src: docker-compose
|
||||||
|
|||||||
Reference in New Issue
Block a user