gi-yt.docker_compose_declarative
Docker Compose Declarativo
Un playbook que te permite definir docker compose de manera declarativa.
Variables del Rol
Consulta templates/docker-compose.yml.j2. Lista coming soon :P
Algunas variables de entorno extra obligatorias:
app
: la variable que contiene datos anidados sobre compose
app_name
: nombre del stack a desplegar
default_restart_policy
: unless-stopped / never / always
configs_dir
: Directorio donde se almacenarán las configuraciones para tus stacks (como volúmenes, básicamente) en el servidor
configs_dir_local
: Directorio donde se almacenarán las configuraciones para tus stacks (como volúmenes, básicamente) en el repositorio
compose_dir
: Directorio donde se almacenará el archivo de compose para los stacks en tu servidor
data_dir
: Directorio donde se almacenarán los datos del stack en el servidor
Ejemplo de Playbook
- name: Docker
hosts: in
vars:
apps:
groups:
NOMBRE_APP:
needs_configs_dir: true
needs_data_dir: true
docker_settings:
services:
- name: CONTENEDOR-1
image: RUTA_REGISTRO
ports:
- "1234:5678"
environment:
A: "BCD"
mounts:
- "{{configs_dir}}/NOMBRE_APP/config.yaml:/var/lib/app/config.yaml"
- "{{data_dir}}/NOMBRE_APP/uploads:/var/lib/app/uploads"
command: "--some-arg-here"
user: 1000
tasks:
- name: Desplegar rol de 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
Licencia
AGPL 3.0
Información del Autor
Arya Kiran me@aryak.me
A role to help automate docker compose deployments
ansible-galaxy install gi-yt.docker_compose_declarative