- name: apt install docker tags: - never - packages become: yes apt: name: - docker.io - docker-compose install_recommends: no - name: "{{ docker_service__etc }}/{{ service }}" become: yes file: path: "{{ docker_service__etc }}/{{ service }}" state: directory - name: "{{ docker_service__etc }}/{{ service }}/docker-compose.yml" become: yes template: dest: "{{ docker_service__etc }}/{{ service }}/docker-compose.yml" src: "{{ template }}" notify: systemctl restart register: docker_descriptor - name: "/etc/systemd/system/{{ systemd_unit }}.service" become: yes copy: dest: "/etc/systemd/system/{{ systemd_unit }}.service" content: | [Unit] Description=Docker service: {{ service }} After=network-online.target After=docker.service Requires=docker.service [Service] WorkingDirectory={{ docker_service__etc }}/{{ service }}/ ExecStartPre=-/usr/bin/docker-compose stop ExecStartPre=-/usr/bin/docker-compose pull ExecStart=/usr/bin/docker-compose up -d ExecReload=/usr/bin/docker-compose up -d [Install] WantedBy=multi-user.target notify: systemctl restart register: systemd_descriptor - name: systemd daemon-reload become: yes systemd: daemon_reload: yes when: systemd_descriptor.changed - name: systemd start "{{ systemd_unit }}" become: yes systemd: name: "{{ systemd_unit }}" enabled: "{{ systemd_enabled }}" state: "{{ systemd_state }}" - set_fact: docker_service__restart: "{{ docker_service__restart + [systemd_unit] }}" when: (systemd_descriptor.changed or docker_descriptor.changed) and systemd_state == 'started'