From cc421c6e748cdfde4f292a1c56c41680a28770ce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20-=20Le=20Filament?= <theo@le-filament.com>
Date: Wed, 19 Jun 2024 13:46:03 +0200
Subject: [PATCH] feat: update to docker compose v2 and docker_proxy tag

---
 handlers/main.yml  | 31 ++++++++++++++++++++++---------
 tasks/instance.yml |  5 ++++-
 2 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/handlers/main.yml b/handlers/main.yml
index 242871a..4bab658 100644
--- a/handlers/main.yml
+++ b/handlers/main.yml
@@ -1,9 +1,10 @@
 ---
 - name: Start odoo whitelists
-  community.docker.docker_compose:
+  community.docker.docker_compose_v2:
       project_src: /home/docker
       files: whitelists.yaml
       project_name: whitelists
+      state: restarted
 
 - name: Pull odoo ML image
   community.docker.docker_image:
@@ -27,21 +28,33 @@
   when: not ansible_check_mode and not (instance.value.odoo_multilingual | default(false) or instance.value.odoo_python36 | default(false))
 
 - name: Build odoo image
-  community.docker.docker_compose:
+  community.docker.docker_compose_v2:
       project_src: /home/docker/{{ instance.key }}/
-      build: true
-      nocache: true
+      build: always
+      # TODO: ensure build without cache.
       recreate: always
-      restarted: true
       remove_orphans: true
+      state: restarted
   async: 600
   poll: 10
   when: not ansible_check_mode
 
-- name: Start odoo container
-  community.docker.docker_compose:
-      project_src: /home/docker/{{ instance.key }}/
-      remove_orphans: true
+- name: Restart odoo container
+  block:
+    - name: Remove container
+      community.docker.docker_compose_v2:
+          project_src: /home/docker/{{ instance.key }}/
+          remove_orphans: true
+          state: absent
+      listen: restart odoo container
+
+    - name: Start container
+      community.docker.docker_compose_v2:
+          project_src: /home/docker/{{ instance.key }}/
+          recreate: always
+          remove_orphans: true
+          state: present
+      listen: restart odoo container
   when: not ansible_check_mode
 
 - name: Remove intermediate image
diff --git a/tasks/instance.yml b/tasks/instance.yml
index e84704e..4c87319 100644
--- a/tasks/instance.yml
+++ b/tasks/instance.yml
@@ -138,6 +138,7 @@
 
 - name: Copy docker compose service
   tags:
+    - "docker_proxy"
     - "metabase"
     - "odoo"
   ansible.builtin.template:
@@ -146,7 +147,7 @@
       owner: root
       group: root
       mode: '0400'
-  notify: Start odoo container
+  notify: "restart odoo container"
 
 # --------------------------------------------------
 # non-prod restore section
@@ -222,6 +223,7 @@
 # Flush handlers.
 - name: Set facts
   tags:
+    - "docker_proxy"
     - "metabase"
     - "odoo"
   ansible.builtin.set_fact:
@@ -231,6 +233,7 @@
 
 - name: Flush handlers
   tags:
+    - "docker_proxy"
     - "metabase"
     - "odoo"
   ansible.builtin.meta: flush_handlers
-- 
GitLab