#!/bin/sh # Refuse de lancer l'application si le répertoire PDF attendu n'est pas un # volume Docker réellement monté. Cette barrière évite de démarrer avec un # dossier de conteneur vide après une reconstruction. set -eu storage_path="${STORAGE_BASE_PATH:-/app/storage}" require_storage_volume="${REQUIRE_STORAGE_VOLUME:-false}" if [ "$require_storage_volume" = "true" ]; then if [ ! -d "$storage_path" ]; then echo "[StorageGuard] Répertoire de stockage absent : $storage_path" >&2 exit 1 fi if ! awk -v expected="$storage_path" '$2 == expected { mounted = 1 } END { exit mounted ? 0 : 1 }' /proc/mounts; then echo "[StorageGuard] Volume persistant non monté sur $storage_path ; démarrage annulé." >&2 exit 1 fi if [ ! -w "$storage_path" ]; then echo "[StorageGuard] Volume persistant non inscriptible : $storage_path" >&2 exit 1 fi else # L’hébergement cloud n’expose pas de volume Docker local. Il utilise le # stockage applicatif disponible à l’exécution et doit donc pouvoir démarrer. mkdir -p "$storage_path" fi exec node dist/index.js