gi-yt.docker_compose_declarative
Docker Compose Deklarativ
Ein Playbook, das es Ihnen ermöglicht, Docker Compose deklarativ zu definieren.
Rollenvariablen
Siehe templates/docker-compose.yml.j2. Liste folgt bald :P
Einige zusätzliche erforderliche Umgebungsvariablen:
app
: die Variable, die geschachtelte Daten zu Compose enthält
app_name
: Name des Stacks, den Sie bereitstellen möchten
default_restart_policy
: unless-stopped / never / always
configs_dir
: Verzeichnis, in dem die Konfigurationen für Ihre Stacks (wie Volumes) auf dem Server gespeichert werden
configs_dir_local
: Verzeichnis, in dem die Konfigurationen für Ihre Stacks (wie Volumes) im Repository gespeichert werden
compose_dir
: Verzeichnis, in dem die Compose-Datei für die Stacks auf Ihrem Server gespeichert wird
data_dir
: Verzeichnis, in dem Stack-Daten auf dem Server gespeichert werden
Beispiel-Playbook
- name: Docker
hosts: in
vars:
apps:
groups:
APP_NAME:
needs_configs_dir: true
needs_data_dir: true
docker_settings:
services:
- name: CONTAINER-1
image: REGISTRY_PATH
ports:
- "1234:5678"
environment:
A: "BCD"
mounts:
- "{{configs_dir}}/APP_NAME/config.yaml:/var/lib/app/config.yaml"
- "{{data_dir}}/APP_NAME/uploads:/var/lib/app/uploads"
command: "--some-arg-here"
user: 1000
tasks:
- name: Stack-Rolle bereitstellen
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
Lizenz
AGPL 3.0
Autorinformationen
Arya Kiran me@aryak.me
ansible-galaxy install gi-yt.docker_compose_declarative