Add golang based docker compose tool.

This installs the golang based compose (v2) tool.  Also make it the
python based tool optional, but installed by default.

The docker compose v2 tool comes from either:
 - Disrto   : Moby Engine : docker-compose-v2     : Focal -> Oracular
 - Upstream : Docker Inc  : docker-compose-plugin : Trusty -> Noble

With manual checking I can't see any distro older than focal that makes
use of the install-docker role, and all in-tree users pull from
upstream, so I think adding the golang compose tool without checking
the release is safe.

Change-Id: Ib8b5af40e626cd2d1a12b643f348001b9fdf4586
This commit is contained in:
Tony Breeds 2024-05-28 10:39:04 -05:00
parent 0ab443dddb
commit 25727fab47
4 changed files with 29 additions and 21 deletions

View File

@ -1,2 +1,3 @@
use_upstream_docker: True use_upstream_docker: True
docker_update_channel: stable docker_update_channel: stable
with_python_compose: True

View File

@ -1,5 +1,7 @@
- name: Install docker - name: Install docker
become: yes become: yes
package: package:
name: docker.io name:
- docker.io
- docker-compose-v2
state: present state: present

View File

@ -34,26 +34,29 @@
- libssl-dev - libssl-dev
state: present state: present
- name: ensure pip3 is installed - name: Install python docker-compose if needed
include_role: when: with_python_compose|bool
name: pip3 block:
- name: ensure pip3 is installed
include_role:
name: pip3
- name: Install docker-compose - name: Install docker-compose
pip: pip:
name: name:
# The explicit pin of requests is a temporary workaround to getting # The explicit pin of requests is a temporary workaround to getting
# docker-compose functioning again after requests and urllib3 updates. # docker-compose functioning again after requests and urllib3 updates.
# Unfortunately python docker-compose is abandonware and we will need # Unfortunately python docker-compose is abandonware and we will need
# to migrate to the new docker plugin system or distro packages, but # to migrate to the new docker plugin system or distro packages, but
# until then this is a quick workaround that will get things moving # until then this is a quick workaround that will get things moving
# again. # again.
# The explicit pin of docker is required as py docker 7.0 introduced # The explicit pin of docker is required as py docker 7.0 introduced
# incompatibilities with python docker-compose. # incompatibilities with python docker-compose.
- requests<2.30.0 - requests<2.30.0
- docker<7.0.0 - docker<7.0.0
- docker-compose - docker-compose
state: present state: present
executable: pip3 executable: pip3
- name: Install rsyslog redirector for container tags - name: Install rsyslog redirector for container tags
copy: copy:

View File

@ -49,6 +49,8 @@
- name: Install docker - name: Install docker
become: yes become: yes
apt: apt:
name: docker-ce name:
- docker-ce
- docker-compose-plugin
state: present state: present
update_cache: yes update_cache: yes