#jinja2: lstrip_blocks: True {{ ansible_managed | comment }} [Unit] Description=Zigbee2mqtt Wants=docker.service After=docker.service [Service] Restart=on-failure RestartSec=5s EnvironmentFile=/etc/environment ExecStop=/usr/bin/docker pull {{ zigbee2mqtt_image }} ExecStop=/bin/sh -c '/usr/bin/docker ps | /bin/grep %p 1> /dev/null && /usr/bin/docker stop %p || true' ExecStartPre=/bin/sh -c '/usr/bin/docker ps | /bin/grep %p 1> /dev/null && /usr/bin/docker kill %p || true' ExecStartPre=/bin/sh -c '/usr/bin/docker ps -a | /bin/grep %p 1> /dev/null && /usr/bin/docker rm %p || true' ExecStartPre=/usr/bin/docker pull {{ zigbee2mqtt_image }} ExecStart=/usr/bin/docker run --rm \ --name %p \ --hostname %p \ --env-file /etc/sysconfig/zigbee2mqtt \ {% if zigbee2mqtt_network is defined and zigbee2mqtt_network %} --network {{ zigbee2mqtt_network }} \ {% endif %} {% for cap in zigbee2mqtt_cap_add %} --cap-add {{ cap }} \ {% endfor %} {% for cap in zigbee2mqtt_cap_drop %} --cap-drop {{ cap }} \ {% endfor %} {% for opt in zigbee2mqtt_security_opts %} --security-opt "{{ opt }}" \ {% endfor %} {% for volume in zigbee2mqtt_volumes %} --mount '{{ "type=bind," if (volume.type | default(False) | lower == "bind") else "" }}src={{ volume.name }},target={{ volume.dest }}' \ {% endfor %} {% for device in zigbee2mqtt_devices %} --device "{{ device.src }}:{{ device.dest }}{% if device.opt is defined %}:{{ device.opt }}{% endif %}" \ {% endfor %} {% for port in zigbee2mqtt_exposed_ports %} --publish {{ port }} \ {% endfor %} {% for item in inst.docker_args | default(zigbee2mqtt_docker_args) %} {{ item }} \ {% endfor %} --health-interval 5s \ --health-retries 5 \ --health-timeout 10s \ {{ zigbee2mqtt_image }} [Install] WantedBy=multi-user.target