# ---
# tasks file for install_docker
- name: Check if Docker is installed
  become: yes
  command: docker -v 
  register: docker_installed
  ignore_errors: true

- name: Install Docker 
  become: yes
  block:
    - name: Add Docker's official GPG key
      block:
        - name: Install necessary packages
          become: yes
          ansible.builtin.apt:
            name:
              - ca-certificates 
              - curl
              - gnupg
            state: latest
            update_cache: yes
        - name: Add GPG key
          ansible.builtin.shell:
            cmd: |
              install -m 0755 -d /etc/apt/keyrings
              curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
              chmod a+r /etc/apt/keyrings/docker.asc
    - name: Add the repository to Apt sources
      block:
        - name: Add repos
          ansible.builtin.shell:
            cmd: |
              echo \
              "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
              "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
              sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    - name: Install Docker packages
      become: yes
      ansible.builtin.apt:
        name:
          - docker-ce 
          - docker-ce-cli 
          - containerd.io 
          - docker-buildx-plugin 
          - docker-compose-plugin
        state: latest
        update_cache: yes
  when: docker_installed.failed

- name: Ensure Docker group exists
  become: yes
  ansible.builtin.group:
    name: docker
    state: present
  register: docker_group

- name: Add User to docker group
  become: yes
  ansible.builtin.user:
    name: yourUser
    groups: docker 
    append: true 
  when: docker_group is changed