Compare commits

..

5 Commits
5.0.6 ... main

Author SHA1 Message Date
Felix Fontein
05c4b48b2b
Replace apt_repository with deb822_repository. (#1250) 2026-03-20 08:07:26 +01:00
Felix Fontein
e02d4d06af
Get rid of unmaintained redhat-actions/push-to-registry action. (#1249) 2026-03-14 23:10:51 +01:00
Matthieu Berthomé
15690313f3
docker_compose_v2_pull: Add ignore_pull_failures option (#1248)
* feat(docker_compose_v2_pull): Add `ignore_pull_failures` option


Co-authored-by: Felix Fontein <felix@fontein.de>

* changelog fragment

* Update changelogs/fragments/1248-ignore-pull-failures.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2026-03-06 18:51:36 +01:00
Felix Fontein
241ba443ac
CI: fix GHA by downgrading Docker (#1244)
* Show more information on Docker.

* Downgrade Docker on GHA.
2026-02-14 21:29:04 +01:00
Felix Fontein
67448fd5bb The next expected release will be 5.1.0. 2026-02-12 07:58:44 +01:00
8 changed files with 98 additions and 48 deletions

View File

@ -28,7 +28,7 @@ env:
jobs:
build:
name: Build image ${{ matrix.name }}:${{ matrix.tag }}
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
@ -53,10 +53,10 @@ jobs:
run: |
sudo apt-get install podman buildah
- name: Set up Go 1.22
- name: Set up Go 1.26
uses: actions/setup-go@v6
with:
go-version: '1.22'
go-version: '1.26'
cache: false # true (default) results in warnings since we don't use Go modules
- name: Build ${{ matrix.name }} image
@ -66,25 +66,22 @@ jobs:
- name: Tag image as latest
if: matrix.tag-as-latest && matrix.tag != 'latest'
run: |
podman tag "${CONTAINER_REGISTRY}/${{ matrix.name }}:${{ matrix.tag }}" "${CONTAINER_REGISTRY}/${{ matrix.name }}:latest"
env:
SOURCE_IMAGE: ${{ matrix.name }}:${{ matrix.tag }}
DEST_IMAGE: ${{ matrix.name }}:latest
run: >-
podman tag "${CONTAINER_REGISTRY}/${SOURCE_IMAGE}" "${CONTAINER_REGISTRY}/${DEST_IMAGE}"
- name: Publish container image ${{ env.CONTAINER_REGISTRY }}/${{ matrix.name }}:${{ matrix.tag }}
if: github.event_name != 'pull_request'
uses: redhat-actions/push-to-registry@v2
with:
registry: ${{ env.CONTAINER_REGISTRY }}
image: ${{ matrix.name }}
tags: ${{ matrix.tag }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
env:
IMAGE: ${{ matrix.name }}:${{ matrix.tag }}
run: >-
podman push "${IMAGE}" "${CONTAINER_REGISTRY}/${IMAGE}" --tls-verify=true --creds=${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}
- name: Publish container image ${{ env.CONTAINER_REGISTRY }}/${{ matrix.name }}:latest
if: github.event_name != 'pull_request' && matrix.tag-as-latest && matrix.tag != 'latest'
uses: redhat-actions/push-to-registry@v2
with:
registry: ${{ env.CONTAINER_REGISTRY }}
image: ${{ matrix.name }}
tags: latest
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
env:
IMAGE: ${{ matrix.name }}:latest
run: >-
podman push "${IMAGE}" "${CONTAINER_REGISTRY}/${IMAGE}" --tls-verify=true --creds=${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}

View File

@ -31,5 +31,28 @@ jobs:
upload-codecov-push: false
upload-codecov-schedule: true
max-ansible-core: "2.17"
# For some reason GitHub decided to bump Docker on the ubuntu-24.04 image,
# which is not compatible with podman and various other things.
pre-test-cmd-integration: |-
# See https://docs.docker.com/engine/install/ubuntu/.
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt-get install -y --allow-downgrades docker-ce-cli=5:28.0.4-1~ubuntu.24.04~noble docker-ce=5:28.0.4-1~ubuntu.24.04~noble
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

View File

@ -0,0 +1,2 @@
minor_changes:
- docker_compose_v2_pull - adds ``ignore_pull_failures`` parameter that passes ``--ignore-pull-failures`` to the ``docker compose pull`` call when set to ``true`` (https://github.com/ansible-collections/community.docker/pull/1248).

View File

@ -7,7 +7,7 @@
namespace: community
name: docker
version: 5.0.6
version: 5.1.0
readme: README.md
authors:
- Ansible Docker Working Group

View File

@ -51,6 +51,12 @@ options:
type: bool
default: false
version_added: 3.12.0
ignore_pull_failures:
description:
- If set to V(true), will pull what it can and ignores images with pull failures.
type: bool
default: false
version_added: 5.1.0
include_deps:
description:
- If set to V(true), also pull services that are declared as dependencies.
@ -132,6 +138,7 @@ class PullManager(BaseComposeManager):
self.policy: t.Literal["always", "missing"] = parameters["policy"]
self.ignore_buildable: bool = parameters["ignore_buildable"]
self.ignore_pull_failures: bool = parameters["ignore_pull_failures"]
self.include_deps: bool = parameters["include_deps"]
self.services: list[str] = parameters["services"] or []
@ -152,6 +159,8 @@ class PullManager(BaseComposeManager):
args.extend(["--policy", self.policy])
if self.ignore_buildable:
args.append("--ignore-buildable")
if self.ignore_pull_failures:
args.append("--ignore-pull-failures")
if self.include_deps:
args.append("--include-deps")
if dry_run:
@ -187,6 +196,7 @@ def main() -> None:
"default": "always",
},
"ignore_buildable": {"type": "bool", "default": False},
"ignore_pull_failures": {"type": "bool", "default": False},
"include_deps": {"type": "bool", "default": False},
"services": {"type": "list", "elements": "str"},
}

View File

@ -9,38 +9,32 @@
- name: Install pre-reqs
ansible.builtin.apt:
name: '{{ docker_prereq_packages }}'
name: '{{ docker_prereq_packages + ["python3-debian"] }}'
state: present
update_cache: true
notify: cleanup docker
- when:
- (ansible_facts.distribution == "Ubuntu" and (ansible_facts.distribution_major_version | int) >= 22) or
(ansible_facts.distribution == "Debian" and (ansible_facts.distribution_major_version | int) >= 12)
name: Add Docker repo on Ubuntu 22+ or Debian 12+
block:
- name: Add gpg key
ansible.builtin.get_url:
url: "https://download.docker.com/linux/{{ ansible_facts.distribution | lower }}/gpg"
dest: /etc/apt/keyrings/docker.asc
- name: Add Docker repo on Ubuntu or Debian
ansible.builtin.deb822_repository:
name: docker
types: deb
architectures:
- >-
{{ 'arm64' if ansible_facts.architecture == 'aarch64' else 'amd64' }}
signed_by: "https://download.docker.com/linux/{{ ansible_facts.distribution | lower }}/gpg"
uris:
- https://download.docker.com/linux/{{ ansible_facts.distribution | lower }}
suites:
- "{{ ansible_facts.distribution_release }}"
components:
- stable
state: present
register: apt_repo
- name: Add Docker repo
ansible.builtin.apt_repository:
repo: deb [arch={{ 'arm64' if ansible_facts.architecture == 'aarch64' else 'amd64' }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/{{ ansible_facts.distribution | lower }} {{ ansible_facts.distribution_release }} stable
state: present
- when:
- (ansible_facts.distribution == "Ubuntu" and (ansible_facts.distribution_major_version | int) < 22) or
(ansible_facts.distribution == "Debian" and (ansible_facts.distribution_major_version | int) < 12)
name: Add Docker repo on Ubuntu 20 or before, or Debian 11 or before
block:
- name: Add gpg key
ansible.builtin.shell: curl -fsSL https://download.docker.com/linux/{{ ansible_facts.distribution | lower }}/gpg >key && apt-key add key # noqa: command-instead-of-module
- name: Add Docker repo
ansible.builtin.apt_repository:
repo: deb [arch={{ 'arm64' if ansible_facts.architecture == 'aarch64' else 'amd64' }}] https://download.docker.com/linux/{{ ansible_facts.distribution | lower }} {{ ansible_facts.distribution_release }} stable
state: present
- name: Update apt cache
ansible.builtin.apt:
update_cache: true
when: apt_repo is changed
- block:
- name: Prevent service restart

View File

@ -70,6 +70,26 @@
state: touch
when: docker_skip_cleanup
- name: Retrieve more information (0/4)
ansible.builtin.command:
cmd: sh -c export
- name: Retrieve more information (1/4)
ansible.builtin.command:
cmd: docker version
- name: Retrieve more information (2/4)
ansible.builtin.command:
cmd: docker info
- name: Retrieve more information (3/4)
ansible.builtin.command:
cmd: docker context ls
- name: Retrieve more information (4/4)
ansible.builtin.command:
cmd: which docker
# Detect docker API version
- name: Check Docker API version
ansible.builtin.command: "docker version -f {% raw %}'{{(index .Server.Components 0).Details.ApiVersion}}'{% endraw %}"

View File

@ -63,4 +63,8 @@
{{ docker_cli_plugins_stdout.stdout | from_json | selectattr('Name', 'eq', 'compose') | map(attribute='Version') | first | default('0.0') | regex_replace('^v', '') }}
- ansible.builtin.debug:
msg: "Has Docker compoes plugin: {{ docker_has_compose }}; Docker compose plugin version: {{ docker_compose_version }}"
msg: "Has Docker compose plugin: {{ docker_has_compose }}; Docker compose plugin version: {{ docker_compose_version }}"
- name: Retrieve more information
ansible.builtin.command:
cmd: docker version