59 lines
2.7 KiB
Markdown
59 lines
2.7 KiB
Markdown
### Image Docker "ext" (Next.js) – variables d'environnement et publication
|
||
|
||
Cette image exécute l'app Next.js en mode production via `next start` et lit la configuration via les variables d'environnement exposées (préfixe `NEXT_PUBLIC_`). L'objectif est d'éviter toute dépendance à `localhost` dans les appels API : les URLs sont construites dynamiquement côté front à partir de ces variables.
|
||
|
||
#### Variables d'environnement supportées
|
||
|
||
- **NEXT_PUBLIC_BACK_API_PROTOCOL**: protocole de l'API (ex: `https://`)
|
||
- **NEXT_PUBLIC_BACK_API_HOST**: hôte de l'API (ex: `api.example.com`)
|
||
- **NEXT_PUBLIC_BACK_API_PORT**: port de l'API (ex: `443`)
|
||
- **NEXT_PUBLIC_BACK_API_ROOT_URL**: racine (ex: `/` ou `/api`)
|
||
- **NEXT_PUBLIC_BACK_API_VERSION**: version (ex: `v1`)
|
||
- **NEXT_PUBLIC_FRONT_APP_HOST**: base publique du front (ex: `https://app.example.com`)
|
||
- **NEXT_PUBLIC_FRONT_APP_PORT**: port front si nécessaire (ex: `443`)
|
||
- **NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT**
|
||
- **NEXT_PUBLIC_IDNOT_CLIENT_ID**
|
||
- **NEXT_PUBLIC_IDNOT_BASE_URL**
|
||
- **NEXT_PUBLIC_DOCAPOSTE_API_URL**
|
||
- **NEXT_PUBLIC_HOTJAR_SITE_ID**
|
||
- **NEXT_PUBLIC_HOTJAR_VERSION**
|
||
- **NEXT_PUBLIC_4NK_URL**
|
||
- **NEXT_PUBLIC_API_URL**
|
||
- **NEXT_PUBLIC_DEFAULT_VALIDATOR_ID**
|
||
- **NEXT_PUBLIC_DEFAULT_STORAGE_URLS** (liste séparée par des virgules)
|
||
|
||
Notes:
|
||
|
||
- Le front initialise ses variables via `next.config.js` et `_app.tsx`, ce qui alimente `FrontendVariables`. Les appels API utilisent ces valeurs et n'emploient pas `localhost`.
|
||
- Les valeurs doivent être passées au conteneur au runtime (`docker run -e ...` ou manifest K8s via `env:`/`secretRef`).
|
||
|
||
#### Construction de l'image (cible "ext")
|
||
|
||
Prérequis: Docker BuildKit activé et agent SSH opérationnel pour cloner `le-coffre-resources` depuis `git.4nkweb.com`.
|
||
|
||
1. `cd /home/debian/lecoffre-front`
|
||
2. `export DOCKER_BUILDKIT=1`
|
||
3. `docker build --target ext --ssh default -t lecoffre/front:ext -f /home/debian/lecoffre-front/Dockerfile /home/debian/lecoffre-front`
|
||
|
||
#### Exécution locale (validation)
|
||
|
||
Exemple minimal (adapter les valeurs):
|
||
|
||
```bash
|
||
docker run --rm -p 3000:3000 \
|
||
-e NEXT_PUBLIC_BACK_API_PROTOCOL=https:// \
|
||
-e NEXT_PUBLIC_BACK_API_HOST=api.example.com \
|
||
-e NEXT_PUBLIC_BACK_API_PORT=443 \
|
||
-e NEXT_PUBLIC_BACK_API_ROOT_URL=/ \
|
||
-e NEXT_PUBLIC_BACK_API_VERSION=v1 \
|
||
-e NEXT_PUBLIC_FRONT_APP_HOST=https://app.example.com \
|
||
-e NEXT_PUBLIC_4NK_URL=https://app.example.com \
|
||
lecoffre/front:ext
|
||
```
|
||
|
||
#### Publication via CI (git.4nkweb.com)
|
||
|
||
- Le push d'image est effectué par la CI de `git.4nkweb.com` suite à un `git push`.
|
||
- Définir le tag Docker dans le message de commit: `ci: docker_tag=ext` (fallback CI: `dev-test`).
|
||
- La branche peut être utilisée par la CI comme tag en l’absence d’override.
|