Documentation

Hooks before et fichiers env

Préparez un environnement local avant que Vectron lance les processus longs.

Quand utiliser cet exemple

Utilisez ce pattern quand les services locaux ont besoin d’une préparation avant le démarrage du workspace: secrets, fichiers générés, images locales, migrations de base de données ou valeurs d’environnement partagées.

Exemple

[global]
log_mode = "both"
log_format = "json"
env_file = ".env"
before = [
  "./tools/prepare-local-secrets.sh",
  "./tools/ensure-dev-images.sh",
  "./tools/prebuild-services.sh",
]

[global.readiness]
type = "log"

[global.readiness.ready]
pattern = "service_ready"

[[process]]
name = "api-public"
command = "./tools/run_service.sh api-public"

[[process]]
name = "worker-jobs"
command = "./tools/run_service.sh worker-jobs"

Pourquoi cela fonctionne

Les commandes before s’exécutent avant que Vectron démarre la liste des processus longs. Cela sort la préparation des commandes individuelles et rend les échecs de démarrage plus faciles à diagnostiquer.

env_file = ".env" donne à chaque processus le même environnement de base. Les entrées env et env_file au niveau processus peuvent toujours ajouter ou surcharger des valeurs ensuite.

Valeurs par défaut utiles ici

  • before : défaut aucun
  • env_file : défaut aucun
  • log_dir : défaut .vectron/logs
  • cleanup_logs : défaut true
  • process.readiness : hérite de global.readiness

Ce qu’il faut personnaliser

  • Gardez les commandes before idempotentes pour que les redémarrages soient sûrs.
  • Préférez de petits scripts de setup avec des messages d’erreur clairs.
  • Stockez les valeurs locales partagées dans .env, mais gardez les secrets hors du contrôle de version.
  • Déplacez l’environnement spécifique à un processus dans [process.env] ou dans un env_file de processus.

Voir aussi