gi-yt.docker_compose_declarative
Docker Compose Déclaratif
Un playbook qui vous permet de définir Docker Compose de manière déclarative.
Variables de Rôle
Voir templates/docker-compose.yml.j2. Liste à venir bientôt :P
Quelques variables d'environnement supplémentaires obligatoires :
app
: la variable qui contient des données imbriquées sur compose
app_name
: nom de la stack à déployer
default_restart_policy
: unless-stopped / never / always
configs_dir
: Répertoire où les configurations pour vos stacks (comme des volumes) seront stockées sur le serveur
configs_dir_local
: Répertoire où les configurations pour vos stacks (comme des volumes) seront stockées dans le dépôt
compose_dir
: Répertoire où le fichier compose pour les stacks sera stocké sur votre serveur
data_dir
: Répertoire où les données de la stack seront stockées sur le serveur
Exemple de Playbook
- name: Docker
hosts: in
vars:
apps:
groups:
NOM_DE_L_APPLICATION:
needs_configs_dir: true
needs_data_dir: true
docker_settings:
services:
- name: CONTENEUR-1
image: CHEMIN_DU_REGISTRE
ports:
- "1234:5678"
environment:
A: "BCD"
mounts:
- "{{configs_dir}}/NOM_DE_L_APPLICATION/config.yaml:/var/lib/app/config.yaml"
- "{{data_dir}}/NOM_DE_L_APPLICATION/uploads:/var/lib/app/uploads"
command: "--some-arg-here"
user: 1000
tasks:
- name: Déployer le rôle de la stack
ansible.builtin.include_role:
name: aryak.docker_compose_declarative
vars:
app: "{{ item.value }}"
app_name: "{{ item.key | lower }}"
default_restart_policy: unless-stopped
configs_dir: "/opt/configs"
configs_dir_local: "./configs/{{ item.key }}"
compose_dir: "/opt/docker"
data_dir: "/opt/docker"
loop: "{{ apps.groups | dict2items }}"
when: item.value.docker_settings
Licence
AGPL 3.0
Informations sur l'Auteur
Arya Kiran me@aryak.me
A role to help automate docker compose deployments
ansible-galaxy install gi-yt.docker_compose_declarative