fix(2): discourse — revert non-working depends_on override (additive map-merge can't remove bad key); keep image warm-cache + 3600s timeout

The depends_on:[app] override in 04cc44c does NOT make compose valid: docker normalizes short-form
depends_on to a map and merges additively, so {discourse}+{app}={discourse,app} keeps the invalid
'discourse' key (config --images still rc=15). Reverted to keep the overlay minimal (re-pin + grace
only). Prepull-skip is harmless because bitnamilegacy/discourse:3.3.1 is warm in the node image cache
→ inline pull is a no-op. Timeout headroom (3600s) retained in recipe_meta.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
autonomic-bot
2026-05-31 01:25:47 +00:00
parent 04cc44c15e
commit 8dfd8ed3b3

View File

@ -21,18 +21,13 @@ version: "3.8"
# Both changes are namespace/grace-only: identical image content, a healthy check still marks healthy # Both changes are namespace/grace-only: identical image content, a healthy check still marks healthy
# immediately → NO assertion is weakened and no defect is masked. # immediately → NO assertion is weakened and no defect is masked.
# #
# 3. PREPULL-ENABLE (compose-validity): the published recipe (BOTH 0.7.0 base AND the PR head) ships # NOTE (prepull): the published recipe ships `sidekiq.depends_on: [discourse]` but the main service is
# `sidekiq.depends_on: [discourse]`, but the main service is named `app` — `discourse` is an # named `app` (`discourse` is undefined), so `abra app config --images` returns invalid-compose (rc=15)
# UNDEFINED service, so `abra app config --images` (the harness prepull step) returns # and the harness prepull is SKIPPED. This overlay does NOT try to override depends_on — compose
# `invalid compose project` (rc=15) and prepull is SKIPPED → the 2.4GB discourse image is pulled # normalizes short-form depends_on to a map and map-merge is additive, so an override can't REMOVE the
# INLINE during `abra app deploy`, eating the convergence budget on the 7-GiB single node and # bad `discourse` key. Instead the 2.4GB `bitnamilegacy/discourse:3.3.1` image is kept warm in the node
# pushing the slow Rails cold boot past the deploy timeout (full4 base-deploy timed out at 2400s). # image cache, so the inline pull during deploy is a no-op and convergence isn't pull-bound. (swarm
# This overlay overrides sidekiq.depends_on to the real service `app` so the merged compose is # ignores depends_on, so the dangling ref has zero runtime effect — a recipe lint nit, not a defect.)
# VALID → prepull resolves+pre-pulls the images before deploy → reliable convergence. This is a
# NO-OP at runtime: `docker stack deploy` (swarm) IGNORES depends_on entirely, so correcting a
# dangling lint-only reference to the real service changes NOTHING swarm does — it masks no defect
# and weakens no test; it only unblocks the image pre-pull. (The same dangling ref exists upstream;
# filed as a recipe nit, but the fix here is the immutable-published-base + harness-prepull path.)
services: services:
app: app:
image: bitnamilegacy/discourse:3.3.1 image: bitnamilegacy/discourse:3.3.1
@ -40,5 +35,3 @@ services:
start_period: 20m start_period: 20m
sidekiq: sidekiq:
image: bitnamilegacy/discourse:3.3.1 image: bitnamilegacy/discourse:3.3.1
depends_on:
- app