---
# Datei: ansible/playbooks/deploy/includes/docker_run.yml
# Verwaltet das Starten und Überwachen der Docker-Container

# Sicherstellen, dass vor dem Neustart alle Container gestoppt werden
- name: Container stoppen, falls bereits laufend
  ansible.builtin.shell: |
    docker-compose -p michaelschiemer -f "{{ docker_compose_project_path | regex_replace('//$', '/') }}docker-compose-simple.yml" down --remove-orphans || true
  args:
    chdir: "{{ docker_compose_project_path | regex_replace('//$', '/') }}"
    executable: /bin/bash
  environment:
    COMPOSE_IGNORE_ORPHANS: "True"
  ignore_errors: yes

# Container neustarten mit der vereinfachten Konfiguration
- name: Docker Container starten
  ansible.builtin.shell: |
    export DOCKER_BUILDKIT=0
    docker-compose -p michaelschiemer -f "{{ docker_compose_project_path | regex_replace('//$', '/') }}docker-compose-simple.yml" up -d --build
  args:
    chdir: "{{ docker_compose_project_path | regex_replace('//$', '/') }}"
    executable: /bin/bash
  environment:
    COMPOSE_IGNORE_ORPHANS: "True"
    PATH: "/usr/local/bin:/usr/bin:/bin"

- name: Container-Status prüfen
  ansible.builtin.shell: |
    docker-compose -p michaelschiemer -f "{{ docker_compose_project_path | regex_replace('//$', '/') }}docker-compose-simple.yml" ps
  args:
    chdir: "{{ docker_compose_project_path | regex_replace('//$', '/') }}"
    executable: /bin/bash
  register: compose_ps

- name: Container-Status anzeigen
  ansible.builtin.debug:
    var: compose_ps.stdout_lines

- name: Docker-Fehlermeldungen anzeigen (falls vorhanden)
  ansible.builtin.debug:
    var: compose_ps.stderr_lines
  when: compose_ps.stderr is defined and compose_ps.stderr != ""

- name: Container-Logs anzeigen für Fehlersuche
  ansible.builtin.shell: |
    docker-compose -p michaelschiemer -f "{{ docker_compose_project_path | regex_replace('//$', '/') }}docker-compose-simple.yml" logs --tail=20
  args:
    chdir: "{{ docker_compose_project_path | regex_replace('//$', '/') }}"
    executable: /bin/bash
  register: compose_logs
  ignore_errors: yes

- name: Container-Logs ausgeben
  ansible.builtin.debug:
    var: compose_logs.stdout_lines
  when: compose_logs.stdout is defined
