99 lines
2.4 KiB
Django/Jinja
99 lines
2.4 KiB
Django/Jinja
services:
|
|
{% for service in services %}
|
|
{% if inventory_hostname in service.vm %}
|
|
{{service.name}}:
|
|
container_name: {{ service.container_name }}
|
|
image: {{ service.image }}
|
|
restart: {{ service.restart }}
|
|
{% if service.network_mode is not defined %}
|
|
hostname: {{service.name}}
|
|
networks:
|
|
- net
|
|
{% endif %}
|
|
{% if service.ports is iterable %}
|
|
{% if service.ports[0].internal != 'proxy_only' %}
|
|
ports:
|
|
{% for port in service.ports %}
|
|
{% if port.internal != 'proxy_only' %}
|
|
- {{port.external}}:{{port.internal}}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if service.cap_add is defined and service.cap_add is iterable %}
|
|
cap_add:
|
|
{% for cap in service.cap_add %}
|
|
- {{ cap }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if service.depends_on is defined and service.depends_on is iterable %}
|
|
depends_on:
|
|
{% for dependency in service.depends_on %}
|
|
- {{ dependency }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if service.network_mode is defined %}
|
|
network_mode: {{ service.network_mode }}
|
|
{% endif %}
|
|
{% if service.privileged is defined %}
|
|
privileged: {{ service.privileged }}
|
|
{% endif %}
|
|
{% if service.volumes is defined and service.volumes is iterable %}
|
|
volumes:
|
|
{% for volume in service.volumes %}
|
|
- {{volume.external}}:{{volume.internal}}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if service.environment is defined and service.environment is iterable %}
|
|
environment:
|
|
{% for env in service.environment %}
|
|
- {{env}}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% if service.devices is defined and service.devices is iterable %}
|
|
devices:
|
|
{% for device in service.devices %}
|
|
- {{device.external}}:{{device.internal}}
|
|
{% endfor %}
|
|
{% endif %}
|
|
|
|
{% if service.name == 'paperless' %}
|
|
{{service.name}}-broker:
|
|
container_name: paperless-broker
|
|
image: docker.io/library/redis:7
|
|
restart: unless-stopped
|
|
networks:
|
|
- net
|
|
volumes:
|
|
- /opt/local/paperless/redis/data:/data
|
|
|
|
{{service.name}}-postgres:
|
|
container_name: paperless-postgres
|
|
image: docker.io/library/postgres:15
|
|
restart: unless-stopped
|
|
networks:
|
|
- net
|
|
volumes:
|
|
- /opt/local/paperless/db/data:/var/lib/postgresql/data
|
|
environment:
|
|
POSTGRES_DB: paperless
|
|
POSTGRES_USER: paperless
|
|
POSTGRES_PASSWORD: 5fnhn%u2YWY3paNvMAjdoufYPQ2Hf3Yi
|
|
{% endif %}
|
|
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
networks:
|
|
net:
|
|
driver: bridge
|
|
ipam:
|
|
driver: default
|
|
config:
|
|
- subnet: 172.16.69.0/24
|
|
|
|
volumes:
|
|
prometheus_data: {}
|