mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 19:01:54 +00:00
10c5b35e88moved simpleicons and roulette-wheel from node:26-bookworm to node:26-slim. Both declare healthcheck flavor curl, which renders CMD curl -f <url>, and neither Dockerfile installed anything. Measured with docker create and docker cp: node:26-bookworm carries /usr/bin/curl at 280800 bytes, node:26-slim carries neither curl nor wget. The probe therefore fails from the first beat and the container never reports healthy. sys-svc-compose waits on the database container alone in compose and on every stack task in swarm, so the consequence splits by mode. Under swarm the task dies with non-zero exit (137): dockerexec: unhealthy container, is rescheduled, dies again, and the converge wait fails after 600 attempts. Five jobs across the two runs ona534d5d46died that way, and none of them on the role they are named after: ERPNext#0, Decidim#0, Hugo#0, Nextcloud#9 and Nextcloud#12 all carry web-app-dashboard in their closure, dashboard enables simpleicons, and the failure reads 'not converged: simpleicons_simpleicons'. All five are swarm and tor, which reads like the tor axis until XWiki#1 is put beside them: swarm, tor, green, and simpleicons is not in its closure. The discriminator is the service, not the axis. Of the seven roles10c5b35e88rebased, bridgy-fed and postmarks probe over tcp, and flowise and bookwyrm install curl themselves. These two were the remainder. roulette-wheel had not been deployed yet when this was written, so it is the same defect caught before it was observed. The install goes into the runtime stage of the multi-stage build; the builder stage would have left the runtime image unchanged and nothing would have gone red. The lint reads the binary out of the probe the declaration renders rather than restating a flavor-to-binary table, so a flavor that changes its command moves the check with it, and it locates the flavor line per service so one marker cannot silence a sibling. Its scope stops at slim: nginx:1.31.6-alpine was measured too and ships curl as a real 272 KB binary plus busybox wget, so the four alpine roles that declare those flavors are served by their base, and widening the rule to them needs that measurement per image rather than an assumption from the word alpine. Not built. The image with the new layer has not been produced, and whether a second fault waits behind the healthcheck is decided by the next deploy. The apt path itself is not blind: BookWyrm#1 installs curl the same way on python:3.11-slim and is green in this run. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Test guidance 🧪
This directory contains contributor guidance for automated tests. Its scope is how lint, unit, integration, regression, and Playwright coverage should be structured, selected, and validated.