version: '3.7' {# ################################################## networks #} {% if current_docker.networks is defined and (current_docker.networks|length>0) %} networks: {% for network in current_docker.networks %} {{ network.name }}: external: {{ network.external | default('false') }} {% endfor %} {% endif %} {# ################################################## networks #} {# ################################################### volumes #} {% if current_docker.volumes is defined and (current_docker.volumes|length>0) %} volumes: {% for volume in current_docker.volumes %} {{ volume.name }}: {} {% endfor %} {% endif %} {# ################################################### volumes #} {# ################################################## services #} services: {% for service in current_docker.services %} {{ service.name }}: image: "{{ service.image_name }}:{{ service.image_version }}" container_name: "{{ service.name }}" restart: {{ service.restart | default('always') }} {% if service.user is defined %} user: {{ service.user }} {% endif %} {# ########################################## command #} {% if service.command is defined and (service.command|length>0) %} command: [ {% for item in service.command %} {{ item }}, {% endfor %} ] {% endif %} {# ########################################## command #} {# ###################################### labels #} {% if service.labels is defined and (service.labels|length>0) %} labels: {% for item in service.labels %} - {{ item }} {% endfor %} {% endif %} {# ###################################### labels #} {# ###################################### environment #} {% if service.environment is defined and (service.environment|length>0) %} environment: {% for item in service.environment %} {{ item }} {% endfor %} {% endif %} {# ###################################### environment #} {# ######################################### env_file #} {% if service.env_file is defined and (service.env_file|length>0) %} env_file: {% for item in service.env_file %} - {{ item }} {% endfor %} {% endif %} {# ######################################## env_file #} {# ######################################### volumes #} {% if service.volumes is defined and (service.volumes|length>0) %} volumes: {% for item in service.volumes %} - {{ item }} {% endfor %} {% endif %} {# ######################################### volumes #} {# ########################################## dns #} {% if service.dns is defined and (service.dns|length>0) %} dns: {% for item in service.dns %} - {{ item }} {% endfor %} {% endif %} {# ########################################## dns #} {# ######################################## networks #} {% if service.networks is defined and (service.networks|length>0) %} networks: {% for item in service.networks %} - {{ item }} {% endfor %} {% endif %} {# ######################################## networks #} {# ##################################### extra_hosts #} {% if service.extra_hosts is defined and (service.extra_hosts|length>0) %} extra_hosts: {% for item in service.extra_hosts %} - {{ item.hostname }}:{{ item.ip }} {% endfor %} {% endif %} {# ##################################### extra_hosts #} {# ########################################### ports #} {% if service.ports is defined and (service.ports|length>0) %} ports: {% for item in service.ports %} - {{ item.external }}:{{ item.internal }} {% endfor %} {% endif %} {# ########################################### ports #} {# ########################################### lines #} {% if service.lines is defined and (service.lines|length>0) %} {% for line in service.lines %} {{ line }} {% endfor %} {% endif %} {# ########################################### lines #} {% endfor %} {# ################################################## services #}