- name: Create docker directory become: yes file: state: directory path: /etc/docker - name: Install docker-ce from upstream include_tasks: upstream.yaml when: use_upstream_docker|bool - name: Install docker-engine from distro include_tasks: distro.yaml when: not use_upstream_docker|bool - name: reset ssh connection to pick up docker group meta: reset_connection # We install docker-compose from pypi to get features like # stop_grace_period. # On arm64 we need build-essential, python3-dev, libffi-dev, and # libssl-dev because wheels don't exist for all the things on arm64. # Similarly for Xenial while we have it, some things (cffi) have # stopped providing Python 3.5 wheels - name: Install arm64 dev pacakges when: > ansible_architecture == 'aarch64' or ansible_distribution_release == 'xenial' package: name: - build-essential - python3-dev - libffi-dev - libssl-dev state: present - name: Install python docker-compose if needed when: with_python_compose|bool block: - name: ensure pip3 is installed include_role: name: pip3 - name: Install docker-compose pip: name: # The explicit pin of requests is a temporary workaround to getting # docker-compose functioning again after requests and urllib3 updates. # Unfortunately python docker-compose is abandonware and we will need # to migrate to the new docker plugin system or distro packages, but # until then this is a quick workaround that will get things moving # again. # The explicit pin of docker is required as py docker 7.0 introduced # incompatibilities with python docker-compose. - requests<2.30.0 - docker<7.0.0 - docker-compose state: present executable: pip3