36 lines
847 B
Plaintext

services:
{% for node in nodes %}
{{ node.name }}:
image: {{ node.image | json_encode() }}
{% if node.platform %} platform: {{ node.platform | json_encode() }}
{% endif %} entrypoint:
{% for arg in node.entrypoint %}
- {{ arg | json_encode() }}
{% endfor %}
volumes:
{% for volume in node.volumes %}
- {{ volume | json_encode() }}
{% endfor %}
{% if node.extra_hosts | length > 0 %}
extra_hosts:
{% for host in node.extra_hosts %}
- {{ host | json_encode() }}
{% endfor %}
{% endif %}
ports:
{% for port in node.ports %}
- {{ port | json_encode() }}
{% endfor %}
environment:
{% for env in node.environment %}
{{ env.key }}: "{{ env.value }}"
{% endfor %}
cap_add:
- SYS_ADMIN
- SYS_PTRACE
security_opt:
- seccomp=unconfined
restart: on-failure
{% endfor %}