
- name: Create Docker network for MariaDB
  community.docker.docker_network:
    name: "{{ mariadb_network_name }}"
    state: present
    ipam_config:
      - subnet: "{{ mariadb_subnet }}"

- name: install MariaDB
  community.docker.docker_container:
    name: "{{ mariadb_name }}"
    image: "{{ mariadb_image }}:{{ mariadb_version}}"
    detach: yes
    env:
      MARIADB_ROOT_PASSWORD:  "{{ mariadb_root_pwd }}"
      MARIADB_AUTO_UPGRADE:   "1"
    networks:
      - name: "{{ mariadb_network_name }}"
    volumes:
      - "{{ mariadb_volume }}:/var/lib/mysql"
    published_ports:
      - "127.0.0.1:{{ mariadb_port }}:3306" # can be that this will be removed if all applications use sockets
    command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW" #for nextcloud
    restart_policy: "{{ DOCKER_RESTART_POLICY }}"
    healthcheck:
      test: "/usr/bin/mariadb --user=root --password={{ mariadb_root_pwd }} --execute \"SHOW DATABASES;\""
      interval: 10s
      timeout: 5s
      retries: 18
  register: setup_mariadb_container_result

- name: install python-mysqlclient
  community.general.pacman: 
    name: python-mysqlclient
    state: present

- name: "Wait until the MariaDB container with hostname '{{ mariadb_name }}' is healthy"
  community.docker.docker_container_info:
    name: "{{ mariadb_name }}"
  register: db_info
  until:
  - db_info.container is defined
  - db_info.container.State.Health.Status == "healthy"
  retries: 30
  delay: 5
  when:
    - setup_mariadb_container_result is defined
    - setup_mariadb_container_result.changed
