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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user