diff --git a/.env b/.env index b285239..3e3be40 100644 --- a/.env +++ b/.env @@ -17,7 +17,7 @@ APP_ENV=prod APP_SECRET=406ccaa0c76a451fdcc2307ea146cbef URL_LINK="http://localhost" -VERSION=dev +VERSION=sql-dev ENABLED_LOCALES='{["en","fr"]}' # configuration bdd diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml index a078eb2..4314489 100644 --- a/config/packages/framework.yaml +++ b/config/packages/framework.yaml @@ -20,6 +20,8 @@ framework: cookie_samesite: lax storage_factory_id: session.storage.factory.native cookie_path: "%cookie_path%" + name: HYDRA_SQL_SESSID + assets: json_manifest_path: '%kernel.project_dir%/public/build/manifest.json' router: diff --git a/misc/files/Caddyfile b/misc/files/Caddyfile index 66c11f9..388ff05 100644 --- a/misc/files/Caddyfile +++ b/misc/files/Caddyfile @@ -58,7 +58,7 @@ expression "{$CADDY_LOG_SKIP:true}" == "true" path_regexp skipPaths ^/({$CADDY_LOG_FILTER:health|metrics})$ } - skip_log @shouldSkip + log_skip @shouldSkip log { output stdout diff --git a/readme.md b/readme.md index 00c2a2b..1ae33fd 100644 --- a/readme.md +++ b/readme.md @@ -116,4 +116,32 @@ ex : `'redis:?host[redis1:26379]&host[redis2:26379]&host[redis3:26379]&redis_sen copier les images et les fonts dans les dossier ./assets modifier si besoin le fichier theme-entrypoints.js -lancer un `npm run build` \ No newline at end of file +lancer un `npm run build` + + +### watch-dev-optimized.sh + +L'option watch du worker frankenphp ne semble pas bien fonctionner pour le moment + +Script Bash pour le développement Symfony/FrankenPHP dans Docker : + il surveille les changements sur des dossiers spécifiés (/src, /templates, etc) et redémarre automatiquement le container correspondant pour refléter les changements en temps réel. + +Il ignore les dossiers var/cache et vendor pour éviter les redémarrages inutiles. + +#### context + +Si le mode watch de compose est activé, ne pas oublier de enable watch dans la console + +#### Pre requis +* Docker +* Docker compose +* inotify-tools (`sudo pacman -S inotify-tools`) + +#### Utilisation + +./watch-dev.sh [nom_du_container] + +le nom peut être partiel, par exemple `sql` +ou complet, par exemple `hydra-dev-hydra-sql-1` + +Chaque projet doit contenir son propre script de surveillance/redémarrage \ No newline at end of file diff --git a/watch-dev-optimized.sh b/watch-dev-optimized.sh new file mode 100755 index 0000000..c28277e --- /dev/null +++ b/watch-dev-optimized.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# Nom du container en argument, valeur par défaut "hydra-sql" +CONTAINER_KEY="${1:-hydra-sql}" + +# Chercher le nom exact du container correspondant +CONTAINER=$(docker ps --filter "name=${CONTAINER_KEY}" --format "{{.Names}}" | head -n1) + +if [[ -n "$CONTAINER" ]]; then + echo "Container trouvé : $CONTAINER ✅" +else + echo "Aucun container exact trouvé pour '$CONTAINER_KEY'. Liste des containers contenant ce mot-clé :" + docker ps --format "{{.Names}}" | grep "$CONTAINER_KEY" || echo "Aucun container trouvé" + exit 1 +fi + +WATCH_DIRS=("src" "templates" "config") +DEBOUNCE_TIME=0.5 + +# vérifier que inotifywait est installé +if ! command -v inotifywait &> /dev/null; then + echo "inotifywait manquant, installez via 'sudo apt install inotify-tools'" + exit 1 +fi + +echo "Watching directories: ${WATCH_DIRS[*]} for container: $CONTAINER" +echo "Ignoring var/cache and vendor" + +while true; do + CHANGES=$(inotifywait -r -e modify,create,delete --format '%w%f' \ + --exclude 'var/cache|vendor' "${WATCH_DIRS[@]}") + + if [[ -n "$CHANGES" ]]; then + echo "$(date '+%H:%M:%S') - change detected, debouncing for $DEBOUNCE_TIME s..." + sleep $DEBOUNCE_TIME + echo "$(date '+%H:%M:%S') - restarting container $CONTAINER" + docker restart "$CONTAINER" + fi +done \ No newline at end of file