Skip to content
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Variables to control the state of the `docker` service, and whether it should st
docker_compose_version: "1.26.0"
docker_compose_path: /usr/local/bin/docker-compose

Docker Compose installation options.
Docker Compose installation options. You can use `docker_compose_version: "latest"` to get the current latest version.

docker_apt_release_channel: stable
docker_apt_arch: amd64
Expand Down
5 changes: 4 additions & 1 deletion defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ docker_restart_handler_state: restarted

# Docker Compose options.
docker_install_compose: true
docker_compose_version: "1.26.0"
docker_compose_version: "v2.11.1"
docker_compose_version_api_url: "https://api.github.com/repos/docker/compose/releases/latest"
docker_compose_arch: "{{ ansible_architecture }}"
docker_compose_download_url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-linux-{{ docker_compose_arch }}"
docker_compose_path: /usr/local/bin/docker-compose

# Used only for Debian/Ubuntu. Switch 'stable' to 'edge' if needed.
Expand Down
18 changes: 16 additions & 2 deletions tasks/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,24 @@
---
- name: Check current docker-compose version.
command: docker-compose --version
command: "docker-compose --version"
register: docker_compose_current_version
changed_when: false
failed_when: false

- name: Get latest version from Docker compose
block:
- name: Get latest version of Docker Compose from Github API
uri:
url: "{{ docker_compose_version_api_url }}"
return_content: yes
register: url_content
delegate_to: localhost

- name: Set latest version in docker_compose_version variable
set_fact:
docker_compose_version: "{{ url_content.json.name }}"
when: docker_compose_version is defined and docker_compose_version == 'latest'

- name: Delete existing docker-compose version if it's different.
file:
path: "{{ docker_compose_path }}"
Expand All @@ -15,6 +29,6 @@

- name: Install Docker Compose (if configured).
get_url:
url: https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-Linux-x86_64
url: "{{ docker_compose_download_url }}"
dest: "{{ docker_compose_path }}"
mode: 0755