Recapitulare incident 2026-07-09: deploy Error la 0s = interpolare env
(variabile ${VAR:?} nesetate in Dokploy), apoi 404 din volum SQLite
detinut de root fata de userul app uid 10001.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.1 KiB
Deploy pe Dokploy (autopass.romfast.ro)
Serviciul ruleaza in Dokploy (LXC 103, dokploy.romfast.ro), proiect AUTOPASS/production,
compose autopass-roaautopass-jqqw1l. Provider: Gitea → repo rar-autopass → branch main
→ ./docker-compose.yml, autodeploy la push. Detalii de infrastructura in
proxmox/lxc103-dokploy/docs/autopass.md (repo-ul de infrastructura, nu acesta).
Reguli la modificarea docker-compose.yml / Dockerfile
-
Variabila noua obligatorie (
${VAR:?...}) → seteaz-o in Dokploy → service autopass → Environment INAINTE de push. Altfeldocker composepica la interpolare, inainte de build, curequired variable VAR is missing a value. Compose se opreste la PRIMA variabila lipsa, deci mai multe variabile lipsa ies la iveala una pe runda de deploy. Semnatura in Dokploy: deployment "Error" cu durata 0s = interpolare env, nu build. -
Schimbarea uid-ului userului non-root din Dockerfile → volumul de date pastreaza ownership-ul vechi si SQLite devine readonly (
attempt to write a readonly database), api + worker intra in crash-loop, Traefik ramane fara backend sanatos → site 404. Inainte de deploy, pe hostul Dokploy:docker volume inspect autopass-roaautopass-jqqw1l_autopass-data --format '{{.Mountpoint}}' docker run --rm <image-api> id app # afla uid/gid curent (acum 10001:10001) chown -R 10001:10001 /var/lib/docker/volumes/autopass-roaautopass-jqqw1l_autopass-data/_data cd /etc/dokploy/compose/autopass-roaautopass-jqqw1l/code docker compose -p autopass-roaautopass-jqqw1l -f ./docker-compose.yml restart api worker
Incident 2026-07-09 (referinta)
Deploy-urile picau la 0s dupa commit-ul care a facut obligatorii AUTOPASS_RAR_ENV,
AUTOPASS_SESSION_SECRET si AUTOPASS_WORKER_SEND_ENABLED (cauza 1, doua runde de fix).
Dupa setarea variabilelor (AUTOPASS_RAR_ENV=prod, AUTOPASS_SESSION_SECRET=<hex32>,
AUTOPASS_WORKER_SEND_ENABLED=true), site-ul a dat 404 din cauza volumului detinut de root
in fata userului app uid 10001 (cauza 2); rezolvat cu chown-ul de mai sus, fara pierdere
de date.