Files
computer-playbook/roles/svc-db-mariadb/templates/docker-compose.yml.j2
Kevin Veen-Birkenbach 379b1d420e Refactor MariaDB and PostgreSQL roles for Ansible 2.20 compatibility and Infinito.Nexus conventions
- Replace legacy docker_container-based MariaDB deployment with docker-compose based workflow
- Add custom Dockerfile and docker-compose templates for MariaDB
- Split MariaDB command into separate arguments to avoid entrypoint parsing errors
- Introduce MARIADB_CUSTOM_IMAGE and MARIADB_EXPOSE_LOCAL variables
- Add docker_compose_flush_handlers to ensure correct handler execution on first run
- Replace utils/once/finalize.yml with utils/once/flag.yml for new run-once semantics
- Align variable naming with Infinito.Nexus UPPERCASE conventions
- Fix PostgreSQL custom image variable name (POSTGRES_CUSTOM_IMAGE_NAME → POSTGRES_CUSTOM_IMAGE)
- Remove obsolete flush_handlers var injection in svc-db-postgres/tasks/main.yml
- General cleanup after migration from Ansible 2.18 → 2.20

Conversation reference:
https://chatgpt.com/share/69306c81-9934-800f-b317-f53a8f246a73
2025-12-03 18:00:30 +01:00

29 lines
962 B
Django/Jinja

{% include 'roles/docker-compose/templates/base.yml.j2' %}
mariadb:
container_name: "{{ MARIADB_NAME }}"
image: "{{ MARIADB_CUSTOM_IMAGE }}"
{{ lookup('template', 'roles/docker-container/templates/build.yml.j2') | indent(4) }}
command:
- "--transaction-isolation=READ-COMMITTED"
- "--binlog-format=ROW"
{% include 'roles/docker-container/templates/base.yml.j2' %}
{% if MARIADB_EXPOSE_LOCAL %}
ports:
- "127.0.0.1:{{ MARIADB_PORT }}:3306"
{% endif %}
volumes:
- "data:/var/lib/mysql"
{% include 'roles/docker-container/templates/networks.yml.j2' %}
healthcheck:
test: "/usr/bin/mariadb --user=root --password={{ MARIADB_ROOT_PWD }} --execute \"SHOW DATABASES;\""
interval: 10s
timeout: 5s
retries: 18
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
data:
name: "{{ MARIADB_VOLUME }}"
{% include 'roles/docker-compose/templates/networks.yml.j2' %}