mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-07-08 09:35:14 +02:00
Finished docker refactoring
This commit is contained in:
parent
38ed1e94e8
commit
ca0602a1c8
@ -12,10 +12,10 @@
|
|||||||
- data:/var/www/html
|
- data:/var/www/html
|
||||||
environment:
|
environment:
|
||||||
- AKAUNTING_SETUP
|
- AKAUNTING_SETUP
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -12,18 +12,18 @@
|
|||||||
worker:
|
worker:
|
||||||
env_file:
|
env_file:
|
||||||
- ./.env
|
- ./.env
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
worker:
|
worker:
|
||||||
image: "{{ applications[application_id].images.worker }}"
|
image: "{{ applications[application_id].images.worker }}"
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
maildev:
|
maildev:
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
volumes:
|
volumes:
|
||||||
- .:/usr/share/nginx/html
|
- .:/usr/share/nginx/html
|
||||||
- .:/var/www
|
- .:/var/www
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
redis:
|
redis:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -8,11 +8,11 @@
|
|||||||
- data:/baserow/data
|
- data:/baserow/data
|
||||||
ports:
|
ports:
|
||||||
- "{{ports.localhost.http[application_id]}}:80"
|
- "{{ports.localhost.http[application_id]}}:80"
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
redis:
|
redis:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -12,7 +12,7 @@
|
|||||||
- "127.0.0.1:{{ports.localhost.http.bluesky_api}}:{{ container_port }}"
|
- "127.0.0.1:{{ports.localhost.http.bluesky_api}}:{{ container_port }}"
|
||||||
|
|
||||||
{% include 'roles/docker-container/templates/healthcheck/wget.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/wget.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
# Deactivated for the moment @see https://github.com/bluesky-social/social-app
|
# Deactivated for the moment @see https://github.com/bluesky-social/social-app
|
||||||
web:
|
web:
|
||||||
@ -33,9 +33,9 @@
|
|||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
pds_data:
|
pds_data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -8,6 +8,6 @@
|
|||||||
|
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
@ -6,7 +6,7 @@ services:
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{# Load Redis #}
|
{# Load Redis #}
|
||||||
{% if applications[application_id].docker.redis.enabled | default(false) | bool %}
|
{% if applications[application_id].docker.redis.enabled | default(false) | bool %}
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'roles/docker-redis/templates/service.yml.j2' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{# Load OAuth2 Proxy #}
|
{# Load OAuth2 Proxy #}
|
||||||
{% if not applications | is_feature_enabled('oauth2',application_id) %}
|
{% if not applications | is_feature_enabled('oauth2',application_id) %}
|
||||||
|
49
roles/docker-container/README.md
Normal file
49
roles/docker-container/README.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Role: docker-container
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This Ansible role supplies common Jinja2 snippets for composing Docker services consistently. Rather than repeating the same YAML blocks, you include one or more of the provided templates in your `docker-compose.yml.j2`.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The following templates are available under `roles/docker-container/templates/`:
|
||||||
|
|
||||||
|
- **base.yml.j2**
|
||||||
|
Common service settings: `restart`, `env_file`, `logging`.
|
||||||
|
|
||||||
|
- **networks.yml.j2**
|
||||||
|
Conditional network attachments:
|
||||||
|
- `central_<database_type>` when `central_database` feature is enabled
|
||||||
|
- `central_ldap` when LDAP feature and network are enabled
|
||||||
|
- `default`
|
||||||
|
|
||||||
|
- **depends_on_dmbs.j2**
|
||||||
|
Builds a `depends_on:` block automatically:
|
||||||
|
- If `central_database` is **off**, renders an empty list `depends_on: []`
|
||||||
|
- Otherwise, includes `database` and/or `redis` with healthcheck conditions
|
||||||
|
|
||||||
|
- **healthcheck/**
|
||||||
|
Four strategies:
|
||||||
|
- `curl.yml.j2` (HTTP via `curl -f`)
|
||||||
|
- `wget.yml.j2` (HTTP via `wget --spider`)
|
||||||
|
- `tcp.yml.j2` (TCP socket test)
|
||||||
|
- `msmtp_curl.yml.j2` (SMTP first, then HTTP via `curl`; avoids duplicate emails)
|
||||||
|
|
||||||
|
Include whichever snippets your service requires to keep your Compose files DRY and maintainable.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Modular templates**
|
||||||
|
Mix only the blocks you need.
|
||||||
|
|
||||||
|
- **Feature‐driven logic**
|
||||||
|
Networks and dependencies adjust automatically based on your `applications` variables.
|
||||||
|
|
||||||
|
- **Multiple healthcheck options**
|
||||||
|
Pick the probe that works best for your container’s protocol and requirements.
|
||||||
|
|
||||||
|
## Further Resources
|
||||||
|
|
||||||
|
- [Docker Compose file reference](https://docs.docker.com/compose/compose-file/)
|
||||||
|
- [Ansible variable precedence](https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#understanding-variable-precedence)
|
||||||
|
- [Jinja2 templating guide](https://jinja.palletsprojects.com/)
|
@ -11,13 +11,13 @@
|
|||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
coturn:
|
coturn:
|
||||||
image: coturn/coturn
|
image: coturn/coturn
|
||||||
restart: always
|
restart: always
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{% include 'roles/docker-compose/templates/base.yml.j2' %}
|
{% include 'roles/docker-compose/templates/base.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
redis:
|
redis:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
discourse_default:
|
discourse_default:
|
||||||
external: true
|
external: true
|
@ -61,7 +61,7 @@
|
|||||||
depends_on:
|
depends_on:
|
||||||
- elasticsearch
|
- elasticsearch
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{ ports.localhost.http[application_id] }}:80"
|
- "127.0.0.1:{{ ports.localhost.http[application_id] }}:80"
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
volumes:
|
volumes:
|
||||||
- data:/var/www/html
|
- data:/var/www/html
|
||||||
|
|
||||||
@ -16,7 +16,7 @@
|
|||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
entrypoint: docker-daemon.sh
|
entrypoint: docker-daemon.sh
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
volumes:
|
volumes:
|
||||||
- data:/var/www/html
|
- data:/var/www/html
|
||||||
|
|
||||||
@ -32,13 +32,13 @@
|
|||||||
- ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBMISSION_DSN=tcp://websocket:7777
|
- ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBMISSION_DSN=tcp://websocket:7777
|
||||||
entrypoint: docker-websocket.sh
|
entrypoint: docker-websocket.sh
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
volumes:
|
volumes:
|
||||||
- data:/var/www/html
|
- data:/var/www/html
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{ ports.localhost.websocket[application_id] }}:8080"
|
- "127.0.0.1:{{ ports.localhost.websocket[application_id] }}:8080"
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -10,11 +10,11 @@
|
|||||||
- "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
|
- "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
|
||||||
|
|
||||||
{% include 'roles/docker-container/templates/healthcheck/msmtp_curl.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/msmtp_curl.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
html:
|
html:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -17,14 +17,14 @@
|
|||||||
- "data:{{funkwhale_media_root}}"
|
- "data:{{funkwhale_media_root}}"
|
||||||
- "music:{{funkwhale_music_directory_path}}:ro"
|
- "music:{{funkwhale_music_directory_path}}:ro"
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
celerybeat:
|
celerybeat:
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
image: "{{ applications | get_docker_image(application_id,'api') }}"
|
image: "{{ applications | get_docker_image(application_id,'api') }}"
|
||||||
command: celery -A funkwhale_api.taskapp beat --pidfile= -l INFO
|
command: celery -A funkwhale_api.taskapp beat --pidfile= -l INFO
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
api:
|
api:
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
@ -36,7 +36,7 @@
|
|||||||
ports:
|
ports:
|
||||||
- "{{ funkwhale_docker_api_port }}"
|
- "{{ funkwhale_docker_api_port }}"
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
front:
|
front:
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
@ -60,10 +60,10 @@
|
|||||||
profiles:
|
profiles:
|
||||||
- typesense
|
- typesense
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
funkwhale_static_root:
|
funkwhale_static_root:
|
||||||
redis:
|
redis:
|
||||||
music:
|
music:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -23,7 +23,7 @@
|
|||||||
- fusiondirectory_data:/assets/fusiondirectory
|
- fusiondirectory_data:/assets/fusiondirectory
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
fusiondirectory_data:
|
fusiondirectory_data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -11,10 +11,10 @@
|
|||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -13,12 +13,12 @@
|
|||||||
- 'data:/var/opt/gitlab'
|
- 'data:/var/opt/gitlab'
|
||||||
shm_size: '256m'
|
shm_size: '256m'
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
redis:
|
redis:
|
||||||
config:
|
config:
|
||||||
logs:
|
logs:
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
@ -6,10 +6,10 @@
|
|||||||
- data:/var/www/html
|
- data:/var/www/html
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
|
- "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
@ -10,9 +10,9 @@
|
|||||||
volumes:
|
volumes:
|
||||||
- "{{import_directory_host}}:{{import_directory_docker}}"
|
- "{{import_directory_host}}:{{import_directory_docker}}"
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% set container_port = 9000 %}
|
{% set container_port = 9000 %}
|
||||||
{% set container_healthcheck = 'health/live' %}
|
{% set container_healthcheck = 'health/live' %}
|
||||||
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -6,6 +6,6 @@
|
|||||||
ports:
|
ports:
|
||||||
- 127.0.0.1:{{ports.localhost.http[application_id]}}:80
|
- 127.0.0.1:{{ports.localhost.http[application_id]}}:80
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -20,9 +20,9 @@
|
|||||||
-b cn=config "(&(objectClass=olcOverlayConfig)(olcOverlay=memberof))" \
|
-b cn=config "(&(objectClass=olcOverlayConfig)(olcOverlay=memberof))" \
|
||||||
| grep "olcOverlay:" | grep -q "memberof"
|
| grep "olcOverlay:" | grep -q "memberof"
|
||||||
'
|
'
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -7,10 +7,10 @@
|
|||||||
- "127.0.0.1:{{ports.localhost.http[application_id]}}:{{ container_port }}"
|
- "127.0.0.1:{{ports.localhost.http[application_id]}}:{{ container_port }}"
|
||||||
volumes:
|
volumes:
|
||||||
- {{docker_compose.directories.config}}config.toml:/listmonk/config.toml
|
- {{docker_compose.directories.config}}config.toml:/listmonk/config.toml
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'roles/docker-container/templates/healthcheck/wget.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/wget.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes-just-database.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes-just-database.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -4,7 +4,7 @@
|
|||||||
resolver:
|
resolver:
|
||||||
image: {{docker_source}}/unbound:{{applications.mailu.version}}
|
image: {{docker_source}}/unbound:{{applications.mailu.version}}
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
ipv4_address: {{networks.local.mailu.dns}}
|
ipv4_address: {{networks.local.mailu.dns}}
|
||||||
|
|
||||||
front:
|
front:
|
||||||
@ -26,7 +26,7 @@
|
|||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
resolver:
|
resolver:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
webmail:
|
webmail:
|
||||||
radicale:
|
radicale:
|
||||||
dns:
|
dns:
|
||||||
@ -45,7 +45,7 @@
|
|||||||
condition: service_started
|
condition: service_started
|
||||||
dns:
|
dns:
|
||||||
- {{networks.local.mailu.dns}}
|
- {{networks.local.mailu.dns}}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
imap:
|
imap:
|
||||||
image: {{docker_source}}/dovecot:{{applications.mailu.version}}
|
image: {{docker_source}}/dovecot:{{applications.mailu.version}}
|
||||||
@ -58,7 +58,7 @@
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- {{networks.local.mailu.dns}}
|
- {{networks.local.mailu.dns}}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
smtp:
|
smtp:
|
||||||
image: {{docker_source}}/postfix:{{applications.mailu.version}}
|
image: {{docker_source}}/postfix:{{applications.mailu.version}}
|
||||||
@ -71,7 +71,7 @@
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- {{networks.local.mailu.dns}}
|
- {{networks.local.mailu.dns}}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
oletools:
|
oletools:
|
||||||
image: {{docker_source}}/oletools:{{applications.mailu.version}}
|
image: {{docker_source}}/oletools:{{applications.mailu.version}}
|
||||||
@ -81,7 +81,7 @@
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- {{networks.local.mailu.dns}}
|
- {{networks.local.mailu.dns}}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
noinet:
|
noinet:
|
||||||
|
|
||||||
antispam:
|
antispam:
|
||||||
@ -98,7 +98,7 @@
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- {{networks.local.mailu.dns}}
|
- {{networks.local.mailu.dns}}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
noinet:
|
noinet:
|
||||||
|
|
||||||
|
|
||||||
@ -112,7 +112,7 @@
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- {{networks.local.mailu.dns}}
|
- {{networks.local.mailu.dns}}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
webdav:
|
webdav:
|
||||||
image: {{docker_source}}/radicale:{{applications.mailu.version}}
|
image: {{docker_source}}/radicale:{{applications.mailu.version}}
|
||||||
@ -123,7 +123,7 @@
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- {{networks.local.mailu.dns}}
|
- {{networks.local.mailu.dns}}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
radicale:
|
radicale:
|
||||||
|
|
||||||
fetchmail:
|
fetchmail:
|
||||||
@ -138,7 +138,7 @@
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- {{networks.local.mailu.dns}}
|
- {{networks.local.mailu.dns}}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
webmail:
|
webmail:
|
||||||
image: {{docker_source}}/webmail:{{applications.mailu.version}}
|
image: {{docker_source}}/webmail:{{applications.mailu.version}}
|
||||||
@ -152,10 +152,10 @@
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- {{networks.local.mailu.dns}}
|
- {{networks.local.mailu.dns}}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
webmail:
|
webmail:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
smtp_queue:
|
smtp_queue:
|
||||||
admin_data:
|
admin_data:
|
||||||
webdav_data:
|
webdav_data:
|
||||||
@ -165,7 +165,7 @@
|
|||||||
dovecot_mail:
|
dovecot_mail:
|
||||||
redis:
|
redis:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
radicale:
|
radicale:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
webmail:
|
webmail:
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
volumes:
|
volumes:
|
||||||
- data:/mastodon/public/system
|
- data:/mastodon/public/system
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
streaming:
|
streaming:
|
||||||
{% set container_port = 4000 %}
|
{% set container_port = 4000 %}
|
||||||
@ -24,7 +24,7 @@
|
|||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{ports.localhost.websocket[application_id]}}:{{ container_port }}"
|
- "127.0.0.1:{{ports.localhost.websocket[application_id]}}:{{ container_port }}"
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
sidekiq:
|
sidekiq:
|
||||||
image: "{{ applications[application_id].images.mastodon }}"
|
image: "{{ applications[application_id].images.mastodon }}"
|
||||||
@ -35,10 +35,10 @@
|
|||||||
- data:/mastodon/public/system
|
- data:/mastodon/public/system
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ['CMD-SHELL', "ps aux | grep '[s]idekiq\ 6' || false"]
|
test: ['CMD-SHELL', "ps aux | grep '[s]idekiq\ 6' || false"]
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
redis:
|
redis:
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -8,9 +8,9 @@
|
|||||||
volumes:
|
volumes:
|
||||||
- data:/var/www/html
|
- data:/var/www/html
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
element:
|
element:
|
||||||
{% set container_port = 80 %}
|
{% set container_port = 80 %}
|
||||||
image: "{{ applications[application_id].images.element }}"
|
image: "{{ applications[application_id].images.element }}"
|
||||||
@ -38,7 +38,7 @@
|
|||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{ports.localhost.http.element}}:{{ container_port }}"
|
- "127.0.0.1:{{ports.localhost.http.element}}:{{ container_port }}"
|
||||||
{% include 'roles/docker-container/templates/healthcheck/wget.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/wget.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% for item in bridges %}
|
{% for item in bridges %}
|
||||||
mautrix-{{item.bridge_name}}:
|
mautrix-{{item.bridge_name}}:
|
||||||
@ -52,7 +52,7 @@
|
|||||||
interval: 1m
|
interval: 1m
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if applications[application_id].plugins.chatgpt | bool %}
|
{% if applications[application_id].plugins.chatgpt | bool %}
|
||||||
matrix-chatgpt-bot:
|
matrix-chatgpt-bot:
|
||||||
@ -96,10 +96,10 @@
|
|||||||
MATRIX_RICH_TEXT: 'true'
|
MATRIX_RICH_TEXT: 'true'
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
synapse_data:
|
synapse_data:
|
||||||
{% if applications[application_id].plugins.chatgpt | bool %}
|
{% if applications[application_id].plugins.chatgpt | bool %}
|
||||||
chatgpt_data:
|
chatgpt_data:
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -9,10 +9,10 @@
|
|||||||
- "mediawiki-data:/var/www/html/"
|
- "mediawiki-data:/var/www/html/"
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
|
- "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -9,10 +9,10 @@
|
|||||||
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
uploads:
|
uploads:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
|
@ -15,11 +15,11 @@
|
|||||||
- 'data:{{ bitnami_data_dir }}'
|
- 'data:{{ bitnami_data_dir }}'
|
||||||
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
code:
|
code:
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
@ -9,7 +9,7 @@
|
|||||||
volumes:
|
volumes:
|
||||||
- data:/var/www/html
|
- data:/var/www/html
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
server:
|
server:
|
||||||
logging:
|
logging:
|
||||||
@ -23,9 +23,9 @@
|
|||||||
volumes:
|
volumes:
|
||||||
- "{{docker_compose_instance_confd_directory}}:{{target_mount_conf_d_directory}}:ro"
|
- "{{docker_compose_instance_confd_directory}}:{{target_mount_conf_d_directory}}:ro"
|
||||||
- "data:/var/www/html:ro"
|
- "data:/var/www/html:ro"
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -13,7 +13,7 @@
|
|||||||
retries: 3
|
retries: 3
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
ipv4_address: 192.168.102.69
|
ipv4_address: 192.168.102.69
|
||||||
|
|
||||||
# @Todo activate
|
# @Todo activate
|
||||||
@ -71,11 +71,11 @@
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
ipv4_address: 192.168.102.70
|
ipv4_address: 192.168.102.70
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
redis:
|
redis:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
@ -34,7 +34,7 @@ x-op-app: &app
|
|||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
command: "./docker/prod/web"
|
command: "./docker/prod/web"
|
||||||
container_name: openproject-web
|
container_name: openproject-web
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
cache:
|
cache:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
@ -52,7 +52,7 @@ x-op-app: &app
|
|||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
command: "./docker/prod/worker"
|
command: "./docker/prod/worker"
|
||||||
container_name: openproject-worker
|
container_name: openproject-worker
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
cache:
|
cache:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
@ -68,7 +68,7 @@ x-op-app: &app
|
|||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
command: "./docker/prod/cron"
|
command: "./docker/prod/cron"
|
||||||
container_name: openproject-cron
|
container_name: openproject-cron
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
cache:
|
cache:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
@ -87,12 +87,12 @@ x-op-app: &app
|
|||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
volumes:
|
volumes:
|
||||||
- "data:/var/openproject/assets"
|
- "data:/var/openproject/assets"
|
||||||
- "{{dummy_volume}}:/var/openproject/pgdata" # This mount is unnecessary and just done to prevent anonymous volumes
|
- "{{dummy_volume}}:/var/openproject/pgdata" # This mount is unnecessary and just done to prevent anonymous volumes
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -13,14 +13,14 @@
|
|||||||
- data:/data
|
- data:/data
|
||||||
- config:/config
|
- config:/config
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
# This just tests if the service is running on port 9000. It doesn't check if there is an 200 or e.g. an 404 response
|
# This just tests if the service is running on port 9000. It doesn't check if there is an 200 or e.g. an 404 response
|
||||||
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
assets:
|
assets:
|
||||||
data:
|
data:
|
||||||
redis:
|
redis:
|
||||||
config:
|
config:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -8,7 +8,7 @@
|
|||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
|
- "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/healthcheck/wget.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/wget.yml.j2' %}
|
||||||
volumes:
|
volumes:
|
||||||
- "data:/var/lib/pgadmin"
|
- "data:/var/lib/pgadmin"
|
||||||
@ -17,7 +17,7 @@
|
|||||||
- "{{ pgadmin_host_password_file }}:{{ pgadmin_docker_password_file }}"
|
- "{{ pgadmin_host_password_file }}:{{ pgadmin_docker_password_file }}"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -7,9 +7,9 @@
|
|||||||
- 127.0.0.1:{{ports.localhost.http[application_id]}}:8080
|
- 127.0.0.1:{{ports.localhost.http[application_id]}}:8080
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{ports.localhost.http[application_id]}}:{{ container_port }}"
|
- "127.0.0.1:{{ports.localhost.http[application_id]}}:{{ container_port }}"
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -9,7 +9,7 @@
|
|||||||
ports:
|
ports:
|
||||||
- "{{ports.localhost.http[application_id]}}:80"
|
- "{{ports.localhost.http[application_id]}}:80"
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
worker:
|
worker:
|
||||||
image: "{{ applications[application_id].images.pixelfed }}"
|
image: "{{ applications[application_id].images.pixelfed }}"
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
@ -25,10 +25,10 @@
|
|||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
application:
|
application:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
redis:
|
redis:
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -11,7 +11,7 @@
|
|||||||
volumes:
|
volumes:
|
||||||
- {{docker_repository_path}}app:/app
|
- {{docker_repository_path}}app:/app
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -9,7 +9,7 @@
|
|||||||
- {{ path_cymais_presentation_output.stdout }}:/app
|
- {{ path_cymais_presentation_output.stdout }}:/app
|
||||||
- {{ path_cymais_output.stdout }}:/source
|
- {{ path_cymais_output.stdout }}:/source
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
|
43
roles/docker-redis/README.md
Normal file
43
roles/docker-redis/README.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# Role: docker-redis
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This Ansible role provides a Jinja2 snippet to inject a Redis service definition into your Docker Compose setup. It renders a `service.yml.j2` template that defines a `redis` container with sensible defaults.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The role’s `service.yml.j2` template includes:
|
||||||
|
|
||||||
|
- An Alpine-based Redis image (`redis:alpine`)
|
||||||
|
- Container naming based on `application_id` (defaults to `redis`)
|
||||||
|
- Restart policy
|
||||||
|
|
||||||
|
- Journald logging driver
|
||||||
|
- A named volume (`redis:/data`) for persistence
|
||||||
|
- A basic healthcheck using `redis-cli ping`
|
||||||
|
- Attachment to the default network
|
||||||
|
|
||||||
|
Include this snippet in your top-level `docker-compose.yml.j2` where you want Redis to appear.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Configurable `application_id`**
|
||||||
|
Sets container name (`{{ application_id }}-redis`).
|
||||||
|
|
||||||
|
- **Restart policy**
|
||||||
|
Controlled by `docker_restart_policy`.
|
||||||
|
|
||||||
|
- **Journald logging**
|
||||||
|
Ensures logs are captured by systemd’s journal.
|
||||||
|
|
||||||
|
- **Persistent storage**
|
||||||
|
Declares and mounts `redis:/data`.
|
||||||
|
|
||||||
|
- **Built-in healthcheck**
|
||||||
|
Uses `redis-cli ping` with configurable intervals and retries.
|
||||||
|
|
||||||
|
## Further Resources
|
||||||
|
|
||||||
|
- [Official Redis Docker image on Docker Hub](https://hub.docker.com/_/redis)
|
||||||
|
- [Ansible Jinja2 documentation](https://docs.ansible.com/ansible/latest/user_guide/playbooks_templating.html)
|
||||||
|
- [Docker Compose reference](https://docs.docker.com/compose/compose-file/)
|
1
roles/docker-redis/vars/main.yml
Normal file
1
roles/docker-redis/vars/main.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
application_id: redis
|
@ -7,4 +7,4 @@
|
|||||||
- 127.0.0.1:{{ports.localhost.http[application_id]}}:8080
|
- 127.0.0.1:{{ports.localhost.http[application_id]}}:8080
|
||||||
restart: {{docker_restart_policy}}
|
restart: {{docker_restart_policy}}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -8,7 +8,7 @@
|
|||||||
ports:
|
ports:
|
||||||
- "{{ports.localhost.http[application_id]}}:3000"
|
- "{{ports.localhost.http[application_id]}}:3000"
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
|
@ -9,10 +9,10 @@
|
|||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{ports.localhost.http[application_id]}}:{{ container_port }}"
|
- "127.0.0.1:{{ports.localhost.http[application_id]}}:{{ container_port }}"
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
redis:
|
redis:
|
||||||
data:
|
data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
@ -8,6 +8,6 @@
|
|||||||
- "127.0.0.1:{{ports.localhost.http[application_id]}}:{{ container_port }}"
|
- "127.0.0.1:{{ports.localhost.http[application_id]}}:{{ container_port }}"
|
||||||
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
@ -35,4 +35,4 @@
|
|||||||
SPRING_PROFILES_ACTIVE: docker,saml2
|
SPRING_PROFILES_ACTIVE: docker,saml2
|
||||||
SERVICE_DISCOVERY_ADDRESS: {{ domains | get_url(application_id, web_protocol) }}/{{syncope_paths[enduser]}}/
|
SERVICE_DISCOVERY_ADDRESS: {{ domains | get_url(application_id, web_protocol) }}/{{syncope_paths[enduser]}}/
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
@ -4,11 +4,11 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
CELERY_ENABLED: "False"
|
CELERY_ENABLED: "False"
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
entrypoint: "python manage.py"
|
entrypoint: "python manage.py"
|
||||||
volumes:
|
volumes:
|
||||||
- static-data:/taiga-back/static
|
- static-data:/taiga-back/static
|
||||||
- media-data:/taiga-back/media
|
- media-data:/taiga-back/media
|
||||||
# - ./config.py:/taiga-back/settings/config.py
|
# - ./config.py:/taiga-back/settings/config.py
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
taiga:
|
taiga:
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
taiga:
|
taiga:
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
taiga-events-rabbitmq:
|
taiga-events-rabbitmq:
|
||||||
@ -50,7 +50,7 @@
|
|||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
taiga:
|
taiga:
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
taiga-events-rabbitmq:
|
taiga-events-rabbitmq:
|
||||||
@ -72,13 +72,13 @@
|
|||||||
volumes:
|
volumes:
|
||||||
- async-rabbitmq-data:/var/lib/rabbitmq
|
- async-rabbitmq-data:/var/lib/rabbitmq
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
taiga:
|
taiga:
|
||||||
|
|
||||||
taiga-front:
|
taiga-front:
|
||||||
image: {{taiga_image_frontend}}:{{applications.taiga.version}}
|
image: {{taiga_image_frontend}}:{{applications.taiga.version}}
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
taiga:
|
taiga:
|
||||||
# volumes:
|
# volumes:
|
||||||
# - {{ taiga_frontend_conf_path }}:/usr/share/nginx/html/conf.json:ro
|
# - {{ taiga_frontend_conf_path }}:/usr/share/nginx/html/conf.json:ro
|
||||||
@ -86,7 +86,7 @@
|
|||||||
taiga-events:
|
taiga-events:
|
||||||
image: taigaio/taiga-events:latest
|
image: taigaio/taiga-events:latest
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
taiga:
|
taiga:
|
||||||
depends_on:
|
depends_on:
|
||||||
taiga-events-rabbitmq:
|
taiga-events-rabbitmq:
|
||||||
@ -99,14 +99,14 @@
|
|||||||
- events-rabbitmq-data:/var/lib/rabbitmq
|
- events-rabbitmq-data:/var/lib/rabbitmq
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
taiga:
|
taiga:
|
||||||
|
|
||||||
taiga-protected:
|
taiga-protected:
|
||||||
image: taigaio/taiga-protected:latest
|
image: taigaio/taiga-protected:latest
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
taiga:
|
taiga:
|
||||||
|
|
||||||
taiga-gateway:
|
taiga-gateway:
|
||||||
@ -119,18 +119,18 @@
|
|||||||
- media-data:/taiga/media
|
- media-data:/taiga/media
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
taiga:
|
taiga:
|
||||||
depends_on:
|
depends_on:
|
||||||
- taiga-front
|
- taiga-front
|
||||||
- taiga-back
|
- taiga-back
|
||||||
- taiga-events
|
- taiga-events
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
static-data:
|
static-data:
|
||||||
media-data:
|
media-data:
|
||||||
async-rabbitmq-data:
|
async-rabbitmq-data:
|
||||||
events-rabbitmq-data:
|
events-rabbitmq-data:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
taiga:
|
taiga:
|
@ -12,9 +12,9 @@
|
|||||||
|
|
||||||
{% include 'roles/docker-container/templates/healthcheck/msmtp_curl.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/msmtp_curl.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
data:
|
data:
|
||||||
|
@ -10,8 +10,8 @@
|
|||||||
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
||||||
|
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes-just-database.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes-just-database.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
2
templates/README.md
Normal file
2
templates/README.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Templates
|
||||||
|
This folder contains global templates which aren't related to a role
|
@ -12,10 +12,10 @@ services:
|
|||||||
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
{% include 'roles/docker-container/templates/base.yml.j2' %}
|
||||||
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
{% include 'roles/docker-container/templates/depends_on_dmbs.j2' %}
|
||||||
{% include 'templates/docker/container/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||||
uploads:
|
uploads:
|
||||||
|
|
||||||
{% include 'templates/docker/compose/networks.yml.j2' %}
|
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
||||||
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
# Todo
|
|
||||||
- Implement Keycloak iframe so that mailu can be used in iframe
|
|
||||||
- Activate mailu in iframe
|
|
@ -17,7 +17,7 @@ class TestDockerComposeTemplates(unittest.TestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
BASE_INCLUDE = "{% include 'roles/docker-compose/templates/base.yml.j2' %}"
|
BASE_INCLUDE = "{% include 'roles/docker-compose/templates/base.yml.j2' %}"
|
||||||
NET_INCLUDE = "{% include 'templates/docker/compose/networks.yml.j2' %}"
|
NET_INCLUDE = "{% include 'roles/docker-compose/templates/networks.yml.j2' %}"
|
||||||
|
|
||||||
def test_docker_compose_includes(self):
|
def test_docker_compose_includes(self):
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user