From b0608f9300f39c5b2560352f5e7cf42dde658662 Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Sun, 26 Apr 2026 14:22:26 -0700 Subject: [PATCH] =?UTF-8?q?playbooks/upgrade-docker-ce:=20accept=20compose?= =?UTF-8?q?=20plugin=20major=20=E2=89=A5=202=20(was=20hardcoded=20v2.X.Y)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docker-ce 29 ships docker-compose-plugin renumbered to v5.x (was v2.x with docker-ce 26-28). Same Compose v2 codebase under the hood — Docker just realigned the major number. The verify regex was hardcoded to `v2\.[0-9]+\.[0-9]+`, so a successful migration on esh-docker-vm (29.4.1, 16/16 stacks back up clean) reported FAILED on the verify phase. Switched to `docker compose version --short` parsed for major, gated `>= 2` — works across future plugin renumbers too. STATUS.md: mark esh-docker-vm done. ana-docker is the last host. --- STATUS.md | 10 ++++++++-- playbooks/upgrade-docker-ce.yaml | 11 +++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/STATUS.md b/STATUS.md index 32c66cb..6458d05 100644 --- a/STATUS.md +++ b/STATUS.md @@ -338,8 +338,14 @@ Order (least → most blast radius): homepage-discovery binding) → "conflicting host options". Playbook now backs up any existing override, probes `daemon.json` for `hosts:`, and installs an override that strips `-H` when needed. -2. **esh-docker-vm** — pending. Run from your TTY: - `scripts/elway esh-docker-vm --playbook playbooks/upgrade-docker-ce.yaml` +2. ~~**esh-docker-vm**~~ — **done 2026-04-24.** docker-ce 29.4.1, all + 16 stacks back up clean (adguard, beszel-agent, calibre-web, + cloudflare-ddns, dockge, dozzle-agent, drawio, esphome, homeassistant, + homepage, mosquitto, paperless-ngx, pgadmin, traefik, uptimekuma). + Surfaced one verify-only nit: the docker-compose-plugin shipped with + docker-ce 29 is renumbered v5.x (was v2.x with 26-28); same Compose + v2 codebase, just realigned major. Playbook's compose-version verify + was hardcoded to `v2.X.Y` and false-failed — now accepts any major ≥ 2. 3. **ana-docker** — pending. Largest blast radius (homepage, miniflux, news-digest, synapse, seafile, vaultwarden, gitea, openwebui, …). Verify each card / service after. diff --git a/playbooks/upgrade-docker-ce.yaml b/playbooks/upgrade-docker-ce.yaml index 38600b0..fb2475f 100644 --- a/playbooks/upgrade-docker-ce.yaml +++ b/playbooks/upgrade-docker-ce.yaml @@ -224,8 +224,15 @@ verify: [ "$v" -ge 24 ] changed_when: "false" - - name: docker compose plugin v2 installed - shell: docker compose version | grep -qE 'v2\.[0-9]+\.[0-9]+' + - name: docker compose plugin v2+ installed + # docker-ce 29 ships docker-compose-plugin renumbered to v5.x (was + # v2.x with docker-ce 26-28). Both are the same Compose v2 codebase + # under the hood — Docker just realigned the plugin's major number. + # Accept anything ≥ 2 so this verify keeps working across future + # plugin renumbers. + shell: | + major=$(docker compose version --short | sed 's/^v//' | cut -d. -f1) + [ "$major" -ge 2 ] changed_when: "false" - name: at least one previously-running stack is back up