2.7 KiB
Raw Blame History

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):

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 labsence doverride.