2.7 KiB
2.7 KiB
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 alimenteFrontendVariables
. Les appels API utilisent ces valeurs et n'emploient paslocalhost
. - Les valeurs doivent être passées au conteneur au runtime (
docker run -e ...
ou manifest K8s viaenv:
/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
.
cd /home/debian/lecoffre-front
export DOCKER_BUILDKIT=1
docker build --target ext --ssh default -t lecoffre/front:ext-0.1.3 -f /home/debian/lecoffre-front/Dockerfile /home/debian/lecoffre-front
Exécution locale (validation)
Exemple minimal (adapter les valeurs):
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-0.1.3
Publication via CI (git.4nkweb.com)
- Le push d'image est effectué par la CI de
git.4nkweb.com
suite à ungit push
. - Définir le tag Docker dans le message de commit:
ci: docker_tag=ext-0.1.3
(fallback CI:dev-test
). - La branche peut être utilisée par la CI comme tag en l’absence d’override.