- name: "Create (optional) Dockerfile for {{ application_id }}" template: src: "{{ item }}" dest: "{{ docker_compose.files.dockerfile }}" loop: - "{{ playbook_dir }}/roles/docker-{{ application_id }}/templates/Dockerfile.j2" - "{{ playbook_dir }}/roles/docker-{{ application_id }}/files/Dockerfile" notify: docker compose up register: create_dockerfile_result failed_when: - create_dockerfile_result is failed - "'Could not find or access' not in create_dockerfile_result.msg" - name: "Create (optional) '{{ docker_compose.files.env }}'" template: src: "{{ item }}" dest: "{{ docker_compose.files.env }}" mode: '770' force: yes notify: docker compose up register: env_template loop: - "{{ playbook_dir }}/roles/docker-{{ application_id }}/templates/env.j2" - "{{ playbook_dir }}/roles/docker-{{ application_id }}/files/env" failed_when: - env_template is failed - "'Could not find or access' not in env_template.msg" - name: "Create (obligatoric) '{{ docker_compose.files.docker_compose }}'" template: src: "docker-compose.yml.j2" dest: "{{ docker_compose.files.docker_compose }}" notify: docker compose up register: docker_compose_template - name: "Check if any container is running in {{ docker_compose.directories.instance }}" command: docker compose ps -q --filter status=running args: chdir: "{{ docker_compose.directories.instance }}" register: docker_ps changed_when: (docker_ps.stdout | trim) == "" notify: docker compose up when: not (docker_compose_template.changed or env_template.changed) - name: flush docker compose up meta: flush_handlers