From 73fc09a2e7e5d08051be718d601414cd4ddad611 Mon Sep 17 00:00:00 2001 From: patrick Date: Mon, 27 Jul 2026 17:11:14 -0400 Subject: [PATCH] render compose file during setup so restore works on fresh instances --- roles/app/README.md | 2 +- roles/app/tasks/deploy.yml | 33 --------------------------------- roles/app/tasks/setup.yml | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 34 deletions(-) diff --git a/roles/app/README.md b/roles/app/README.md index 9f48f87..3de4ac0 100644 --- a/roles/app/README.md +++ b/roles/app/README.md @@ -141,7 +141,7 @@ For scheduled backups: The role supports selective execution using tags: ```bash -# Setup only - doesn't start the containers +# Setup only - creates directories and renders the compose file, but doesn't start the containers ansible-playbook --tags setup playbook.yml # Full deployment - setup + start containers diff --git a/roles/app/tasks/deploy.yml b/roles/app/tasks/deploy.yml index af83f70..306e95a 100644 --- a/roles/app/tasks/deploy.yml +++ b/roles/app/tasks/deploy.yml @@ -1,39 +1,6 @@ --- - name: "{{ app_name }} - Deploy Docker Compose configuration" block: - - name: Copy Docker Compose template - ansible.builtin.template: - src: "{{ app_compose_template }}" - dest: "{{ app_compose_dest }}" - mode: "{{ app_permission_mode }}" - owner: "{{ app_uid }}" - group: "{{ app_gid }}" - validate: "{{ 'docker compose -f %s config -q' if app_compose_validate else omit }}" - when: _compose_type == 'template' - register: compose_file - - - name: Copy Docker Compose file - ansible.builtin.copy: - src: "{{ app_compose_file }}" - dest: "{{ app_compose_dest }}" - mode: "{{ app_permission_mode }}" - owner: "{{ app_uid }}" - group: "{{ app_gid }}" - validate: "{{ 'docker compose -f %s config -q' if app_compose_validate else omit }}" - when: _compose_type == 'file' - register: compose_file - - - name: Copy Docker Compose content from YAML string - ansible.builtin.copy: - content: "{{ app_compose_content }}" - dest: "{{ app_compose_dest }}" - mode: "{{ app_permission_mode }}" - owner: "{{ app_uid }}" - group: "{{ app_gid }}" - validate: "{{ 'docker compose -f %s config -q' if app_compose_validate else omit }}" - when: _compose_type == 'content' - register: compose_file - - ansible.builtin.include_tasks: manage_compose.yml when: app_compose_start | default(true) tags: [deploy] \ No newline at end of file diff --git a/roles/app/tasks/setup.yml b/roles/app/tasks/setup.yml index f47568f..ad8da40 100644 --- a/roles/app/tasks/setup.yml +++ b/roles/app/tasks/setup.yml @@ -90,6 +90,42 @@ loop: "{{ app_subdirectories }}" tags: [setup, deploy] +- name: "{{ app_name }} - Render Docker Compose configuration" + block: + - name: Copy Docker Compose template + ansible.builtin.template: + src: "{{ app_compose_template }}" + dest: "{{ app_compose_dest }}" + mode: "{{ app_permission_mode }}" + owner: "{{ app_uid }}" + group: "{{ app_gid }}" + validate: "{{ 'docker compose -f %s config -q' if app_compose_validate else omit }}" + when: _compose_type == 'template' + register: compose_file + + - name: Copy Docker Compose file + ansible.builtin.copy: + src: "{{ app_compose_file }}" + dest: "{{ app_compose_dest }}" + mode: "{{ app_permission_mode }}" + owner: "{{ app_uid }}" + group: "{{ app_gid }}" + validate: "{{ 'docker compose -f %s config -q' if app_compose_validate else omit }}" + when: _compose_type == 'file' + register: compose_file + + - name: Copy Docker Compose content from YAML string + ansible.builtin.copy: + content: "{{ app_compose_content }}" + dest: "{{ app_compose_dest }}" + mode: "{{ app_permission_mode }}" + owner: "{{ app_uid }}" + group: "{{ app_gid }}" + validate: "{{ 'docker compose -f %s config -q' if app_compose_validate else omit }}" + when: _compose_type == 'content' + register: compose_file + tags: [setup, deploy] + - name: "{{ app_name }} - Deploy additional templates" block: - name: Copy over additional templates