Some containers do not support PUID and GUID, in that case it is handy to have an option to pass the user to the container from the compose file
165 lines
4.2 KiB
Django/Jinja
165 lines
4.2 KiB
Django/Jinja
# {{ ansible_managed }}
|
|
---
|
|
version: "{{ compose_schema_version | default('2') }}"
|
|
services:
|
|
{% for container in containers %}
|
|
{% if container.active %}
|
|
{{ container.service_name }}:
|
|
image: {{ container.image }}
|
|
container_name: {{ container.container_name | default(container.service_name) }}
|
|
{% if container.extra_hosts is defined %}
|
|
extra_hosts:
|
|
{% for host in container.extra_hosts %}
|
|
- {{ host }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.network_mode is defined %}
|
|
network_mode: {{ container.network_mode }}
|
|
{% endif %}
|
|
{% if container.build is defined %}
|
|
build: {{ container.build }}
|
|
{% endif %}
|
|
{% if container.privileged is defined %}
|
|
privileged: {{ container.privileged }}
|
|
{% endif %}
|
|
{% if container.cap_add is defined %}
|
|
cap_add:
|
|
{% for cap in container.cap_add %}
|
|
- {{ cap }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.group_add is defined %}
|
|
group_add:
|
|
{% for group in container.group_add %}
|
|
- {{ group }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.devices is defined %}
|
|
devices:
|
|
{% for device in container.devices %}
|
|
- {{ device }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.volumes is defined %}
|
|
volumes:
|
|
{% for volume in container.volumes %}
|
|
- {{ volume }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.labels is defined %}
|
|
labels:
|
|
{% for label in container.labels %}
|
|
- {{ label }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.ports is defined %}
|
|
ports:
|
|
{% for port in container.ports %}
|
|
- {{ port }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if ( container.environment is defined ) or ( container.include_global_env_vars is defined and container.include_global_env_vars) %}
|
|
environment:
|
|
{% if container.include_global_env_vars | default(false) %}
|
|
{% for global_var in global_env_vars %}
|
|
- {{ global_var }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.environment is defined %}
|
|
{% for env_var in container.environment %}
|
|
- {{ env_var }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if container.depends_on is defined %}
|
|
depends_on:
|
|
{% for dependent in container.depends_on %}
|
|
- {{ dependent }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.hostname is defined %}
|
|
hostname: {{ container.hostname }}
|
|
{% endif %}
|
|
{% if container.mem_limit is defined %}
|
|
mem_limit: {{ container.mem_limit }}
|
|
{% endif %}
|
|
{% if container.command is defined %}
|
|
{% if container.command is string %}
|
|
command: {{ container.command }}
|
|
{% else %}
|
|
command:
|
|
{% for command in container.command %}
|
|
- {{ command }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if container.security_opt is defined %}
|
|
security_opt:
|
|
{% for sec_opt in container.security_opt %}
|
|
- {{ sec_opt }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.sysctl is defined %}
|
|
sysctls:
|
|
{% for param in container.sysctl %}
|
|
- {{ param }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.shm_size is defined %}
|
|
shm_size: {{ container.shm_size }}
|
|
{% endif %}
|
|
{% if container.ulimits is defined %}
|
|
ulimits:
|
|
{% if container.ulimits.nproc is defined %}
|
|
nproc: {{ container.ulimits.nproc }}
|
|
{% endif %}
|
|
{% if container.ulimits.nofile is defined %}
|
|
nofile:
|
|
{% for param, value in container.ulimits.nofile.items() %}
|
|
{{ param }}: {{ value }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.ulimits.memlock is defined %}
|
|
memlock:
|
|
{% for param, value in container.ulimits.memlock.items() %}
|
|
{{ param }}: {{ value }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if container.tmpfs is defined %}
|
|
tmpfs:
|
|
{% for item in container.tmpfs %}
|
|
- {{ item }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.dns is defined %}
|
|
dns:
|
|
{% for dns_entry in container.dns %}
|
|
- {{ dns_entry }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.logging.driver is defined %}
|
|
logging:
|
|
driver: {{ container.logging.driver }}
|
|
{% if container.logging.options is defined %}
|
|
options:
|
|
{% for option in container.logging.options %}
|
|
{{ option }}: {{ container.logging.options[option] }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if container.env_file is defined %}
|
|
env_file:
|
|
{% for envfile in container.env_file %}
|
|
- {{ envfile }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if container.user is defined %}
|
|
user: {{ container.user }}
|
|
{% endif %}
|
|
{% if container.restart is defined %}
|
|
restart: {{ container.restart }}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|