@eqs/cli (coolify verify) : deux services construits en parallèle avec le même secret npmrc — la session BuildKit lâche en production #155

Closed
opened 2026-10-14 14:46:58 +00:00 by nicolas-fryder · 0 comments

Constat (ATLAS, Coolify 4.1.2, 2026-10-14 14:38)

Déploiement en échec sans erreur de compilation : docker compose build construit app et worker en parallèle, tous deux montant le secret de build npmrc (secrets: npmrc: environment: NPMRC, la forme que le socle prescrit, D-033/D-036). L'image du worker se termine, puis le démon journalise :

level=error msg="healthcheck failed fatally" error="session healthcheck failed fatally: Unavailable: connection error: desc = \"transport: Error while dialing: only one connection allowed\""
level=error msg=/moby.buildkit.v1.Control/Solve error="rpc error: code = Canceled desc = context canceled"

et le build de l'application est annulé en plein next build. Côté Coolify : exit code 255, journal tronqué. Intermittent : deux déploiements identiques une heure plus tôt avaient réussi.

Contournement côté ATLAS (commit d7535b2)

Le worker déclare additional_contexts: { apres-app: service:app } : son build dépend de celui de l'application, les deux ne partagent plus jamais la session en même temps. eqs coolify verify --up vert.

Attendu

  • Une règle coolify.builds-paralleles-secret dans eqs coolify verify : deux services avec build: montant le même secret sans ordre entre eux → écart, avec la parade.
  • Ou que le gabarit de compose du profil (next-fullstack + worker) porte l'ordre par défaut.
  • À noter dans la doc Coolify du socle : un 255 sans erreur de compilation se lit dans journalctl -u docker (session BuildKit), pas dans le journal de Coolify.
## Constat (ATLAS, Coolify 4.1.2, 2026-10-14 14:38) Déploiement en échec **sans erreur de compilation** : `docker compose build` construit `app` et `worker` en parallèle, tous deux montant le secret de build `npmrc` (`secrets: npmrc: environment: NPMRC`, la forme que le socle prescrit, D-033/D-036). L'image du worker se termine, puis le démon journalise : ``` level=error msg="healthcheck failed fatally" error="session healthcheck failed fatally: Unavailable: connection error: desc = \"transport: Error while dialing: only one connection allowed\"" level=error msg=/moby.buildkit.v1.Control/Solve error="rpc error: code = Canceled desc = context canceled" ``` et le build de l'application est annulé en plein `next build`. Côté Coolify : `exit code 255`, journal tronqué. Intermittent : deux déploiements identiques une heure plus tôt avaient réussi. ## Contournement côté ATLAS (commit d7535b2) Le worker déclare `additional_contexts: { apres-app: service:app }` : son build dépend de celui de l'application, les deux ne partagent plus jamais la session en même temps. `eqs coolify verify --up` vert. ## Attendu - Une règle `coolify.builds-paralleles-secret` dans `eqs coolify verify` : deux services avec `build:` montant le même secret sans ordre entre eux → écart, avec la parade. - Ou que le gabarit de compose du profil (`next-fullstack` + worker) porte l'ordre par défaut. - À noter dans la doc Coolify du socle : un 255 sans erreur de compilation se lit dans `journalctl -u docker` (session BuildKit), pas dans le journal de Coolify.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Infrastructure/eqs-platform#155
No description provided.