# This file is a mash-up of: # https://github.com/geerlingguy/ansible-role-docker/blob/master/tasks/docker-compose.yml # https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-debian-9 # and our own stuff … --- - name: Gather package facts package_facts: manager: "auto" - name: Exit if docker.io is installed fail: msg: "Please remove docker.io (Debian vanilla docker package) first!" when: "'docker.io' in ansible_facts.packages" - name: Install Docker APT deps package: name: "{{ packages }}" state: present vars: packages: - apt-transport-https - ca-certificates - gnupg2 - software-properties-common - name: add Docker apt-key apt_key: url: https://download.docker.com/linux/debian/gpg state: present - name: add Docker's APT repository apt_repository: repo: deb https://download.docker.com/linux/debian buster stable state: present update_cache: true filename: 'docker' - name: install Docker package: name: "{{ packages }}" state: present vars: packages: - docker-ce - name: Set docker configuration copy: dest: /etc/docker/daemon.json content: | { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" } } register: docker_config - name: Restart docker for changed configuration service: name: docker state: restarted enabled: yes when: docker_config.changed - name: Check current docker-compose version. command: docker-compose --version register: docker_compose_current_version changed_when: false failed_when: false - name: Delete existing docker-compose version if it's different. file: path: "{{ docker_compose_path }}" state: absent when: > docker_compose_current_version.stdout is defined and docker_compose_version not in docker_compose_current_version.stdout - name: Install Docker Compose (if configured). get_url: url: https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-Linux-x86_64 dest: "{{ docker_compose_path }}" mode: 0755 - name: Place admin users in docker group user: name: "{{ item }}" groups: docker append: yes with_items: "{{ admin_users }}"