41 lines
2.0 KiB
Markdown
41 lines
2.0 KiB
Markdown
## Déploiement maîtrisé du frontend (lecoffre-front) – flux ext
|
||
|
||
Objectif: construire l’image via la CI (tag `ext`) avec les variables build-time, exécuter le conteneur avec les variables runtime de `lecoffre_node/.env.master`, puis valider l’environnement et CORS/state.
|
||
|
||
### Pré-requis
|
||
- Variables `NEXT_PUBLIC_*` et autres correctement définies dans `lecoffre_node/.env.master`.
|
||
- CI configurée pour builder `git.4nkweb.com/4nk/lecoffre-front:ext` quand on pousse la branche et le tag `ext`.
|
||
|
||
### Déclenchement CI (manuel)
|
||
1. Commit sur la branche `ext` avec le préfixe: `ci: docker_tag=ext`.
|
||
2. Push explicite de la branche et du tag:
|
||
- `git push origin refs/heads/ext:refs/heads/ext`
|
||
- `git tag -f ext && git push origin refs/tags/ext:refs/tags/ext -f`
|
||
|
||
### Script de déploiement et validation
|
||
Le script `scripts/deploy_front_ext.sh` réalise:
|
||
- Pull de l’image et redémarrage du service (optionnel)
|
||
- Vérification que les `NEXT_PUBLIC_*` du runtime (`/env`) correspondent aux valeurs de `.env.master`
|
||
- Vérification CORS sur dev3 (OPTIONS 204) et POST `/api/v1/idnot/state` (200 + `state`)
|
||
|
||
Usage:
|
||
```
|
||
scripts/deploy_front_ext.sh [--ci] [--no-pull] [--no-up] [--validate-only]
|
||
```
|
||
- `--ci`: affiche un rappel pour déclencher la CI (aucun git dans le script)
|
||
- `--no-pull`: ne fait pas le `docker compose pull`
|
||
- `--no-up`: ne redémarre pas le service
|
||
- `--validate-only`: uniquement les validations (pas de pull ni up)
|
||
|
||
### Points de contrôle
|
||
- `docker-compose.yml` utilise `image: git.4nkweb.com/4nk/lecoffre-front:ext` (pas de build local)
|
||
- Les `NEXT_PUBLIC_*` sont cohérents entre le build (CI) et le runtime (`.env.master`)
|
||
- CORS dev3 renvoie `Access-Control-Allow-Origin: https://dev4.4nkweb.com` sur OPTIONS et POST
|
||
- L’endpoint `state` renvoie 200 et un champ `state`
|
||
|
||
### En cas d’erreur
|
||
- Variable manquante/mismatch: corriger `lecoffre_node/.env.master` puis relancer le script
|
||
- CORS en erreur: vérifier Nginx dev3 (headers, proxy_hide_header, logique d’Origin)
|
||
|
||
|