Files
Ansible-Build/roles/docker_compose/tasks/docker_compose.yml
T

60 lines
2.0 KiB
YAML

---
- name: Check current {{ role_name }} version
ansible.builtin.command: /usr/local/bin/docker-compose --version
register: docker_compose_vsn
changed_when: false
failed_when: false
- name: Set current {{ role_name }} version
ansible.builtin.set_fact:
docker_compose_current_version: "{{ docker_compose_vsn.stdout | regex_search('(\\d+(\\.\\d+)+)') }}"
when: docker_compose_vsn.stdout | regex_search("version")
- name: Install {{ role_name }} {{ docker_compose_version }}
ansible.builtin.get_url:
url: https://github.com/docker/compose/releases/download/v{{ docker_compose_version }}/docker-compose-Linux-x86_64
dest: /usr/local/bin/docker-compose
force: true
mode: u+rx,g+rx
when: docker_compose_current_version is not defined or docker_compose_current_version != docker_compose_version
- name: Ensure {{ role_name }} data dir exists
ansible.builtin.file:
path: "{{ docker_compose_data_dir }}"
state: directory
- name: Copy {{ role_name }} dotenv
ansible.builtin.template:
src: dotenv
dest: "{{ docker_compose_data_dir }}/.env"
notify: Restart {{ role_name }} project
- name: Copy {{ role_name }} config
ansible.builtin.template:
src: docker-compose.yml
dest: "{{ docker_compose_data_dir }}/docker-compose.yml"
notify: Restart {{ role_name }} project
when: docker_compose_definition is defined
- name: Include docker volume role
ansible.builtin.include_role:
name: docker_volume
vars:
docker_volumes: "{{ docker_compose_volumes }}"
when: docker_compose_volumes is defined
- name: Include restic client role for docker compose backup
ansible.builtin.include_role:
name: restic
vars:
restic_backup_set: "{{ docker_compose_backup_set }}"
when: docker_compose_backup_set is defined
- name: Start {{ role_name }} project
ansible.builtin.command: /usr/local/bin/docker-compose -p {{ docker_compose_project_name }} up -d
args:
chdir: "{{ docker_compose_data_dir }}"
register: result
changed_when: "'up-to-date' not in result.stderr"
when: docker_compose_definition is defined