From f68537eafc031b0b1833c6e9b927400a366d303e Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Fri, 19 Feb 2021 20:12:40 +0200
Subject: [PATCH] Restart stopped containers after a restart.

---
 roles/debian_server/files/docker-restart |  7 +++++++
 roles/debian_server/handlers/main.yml    |  4 ++++
 roles/debian_server/tasks/main.yml       | 22 ++++++++++++++++++++++
 3 files changed, 33 insertions(+)
 create mode 100755 roles/debian_server/files/docker-restart

diff --git a/roles/debian_server/files/docker-restart b/roles/debian_server/files/docker-restart
new file mode 100755
index 0000000..83542fb
--- /dev/null
+++ b/roles/debian_server/files/docker-restart
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -eu
+
+docker container list \
+    --filter 'label=com.docker.compose.project' \
+    --filter 'status=exited' \
+    --format '{{ .ID }}' |  xargs -tr docker start
diff --git a/roles/debian_server/handlers/main.yml b/roles/debian_server/handlers/main.yml
index 84d9730..a643629 100644
--- a/roles/debian_server/handlers/main.yml
+++ b/roles/debian_server/handlers/main.yml
@@ -1,4 +1,8 @@
 ---
+- name: Systemd daemon reload
+  ansible.builtin.systemd:
+    daemon_reload: true
+
 - name: Rebuild initramfs
   command:
     cmd: update-initramfs -u
diff --git a/roles/debian_server/tasks/main.yml b/roles/debian_server/tasks/main.yml
index 7be98e5..df12fda 100644
--- a/roles/debian_server/tasks/main.yml
+++ b/roles/debian_server/tasks/main.yml
@@ -55,6 +55,28 @@
       - ufw
     state: present
 
+- name: Copy the script to start stopped container after a restart
+  copy:
+    dest: /usr/share/docker.io/restart-containers
+    mode: preserve
+    src: docker-restart
+
+- name: Create a drop-in directory for the Docker service
+  file:
+    path: /etc/systemd/system/docker.service.d
+    mode: 0o0755
+    state: directory
+
+- name: Restart stopped containers after a restart
+  copy:
+    content: |
+      [Service]
+      ExecStartPost=/usr/share/docker.io/restart-containers
+    dest: /etc/systemd/system/docker.service.d/restart-containers.conf
+    mode: 0o0644
+  notify:
+    - Systemd daemon reload
+
 - name: Rate limit SSH
   community.general.ufw:
     rule: limit
-- 
GitLab