fix(deploy): .env.docker resilient — no rm -f, sanity-check vars critiques

- Supprime rm -f (causait la perte de ~23 vars a chaque deploy)
- upsert ecrit KEY=value sans quotes (compatible Docker Compose v2)
- CRLF strip avant ecriture (sed s/\r$//)
- Sanity-check post-upsert: abort si NEXTAUTH_SECRET/AUTH_GOOGLE_ID/etc manquantes
- Header ## AUTO-MANAGED BY CI ## en tete de fichier genere
- deploy-prod.sh: sanity-check pre-deploy (NEXTAUTH_URL/SECRET/GOOGLE_ID/SECRET)
- Ajoute .env.docker.example (reference complete de toutes les vars)
- Ajoute MCP_SERVER_MODE/MCP_SERVER_URL manquantes dans deploy.yaml
This commit is contained in:
Antigravity
2026-06-28 13:15:55 +00:00
parent 19d446f78e
commit b8c85be40f
4 changed files with 102 additions and 110 deletions

View File

@@ -127,9 +127,16 @@ HEALTH_CHECK_SLEEP_SECONDS=5
cd "$ROOT"
# Sanitize .env.docker: Docker Compose v2 rejects ANY quote character
# Pre-deploy sanity-check: .env.docker must have critical vars
if [ -f "$ROOT/.env.docker" ]; then
tr -d '"' < "$ROOT/.env.docker" > "$ROOT/.env.docker.tmp" && mv "$ROOT/.env.docker.tmp" "$ROOT/.env.docker"
sed -i 's/\r$//' "$ROOT/.env.docker"
for required in NEXTAUTH_URL NEXTAUTH_SECRET AUTH_GOOGLE_ID AUTH_GOOGLE_SECRET; do
grep -q "^${required}=" "$ROOT/.env.docker" || {
echo "ERROR: $required missing in .env.docker — aborting deploy"
telegram_notify "failure" "Missing $required in .env.docker"
exit 1
}
done
fi
load_env_docker