manager-app/Dockerfile
Thomas Fransolet 842f69ebc9 Web mobile : le clavier ne s'ouvrait pas sur l'ecran de login
web/index.html n'avait aucune balise <meta name="viewport">. Les navigateurs
mobiles appliquaient donc un viewport virtuel de ~980px et dezoomaient la page,
ce qui decalait les <input> DOM caches par lesquels Flutter web gere la saisie :
le tap donnait bien le focus cote Flutter, mais le navigateur n'ouvrait pas le
clavier et tentait de zoomer sur l'element — l'ecran semblait juste se rafraichir.
Effet de bord, le LayoutBuilder du login voyait maxWidth ~980, donc isMobile
etait toujours faux et la mise en page mobile ne s'appliquait jamais.

maximum-scale=1.0 evite en plus le zoom automatique de Safari iOS au focus.

Au passage :
- suppression de window.flutterWebRenderer = "html", sans effet depuis que le
  renderer HTML a ete retire de Flutter (3.29, on est en 3.44) ;
- badge de version sur l'ecran de login. kGitSha est injecte au build
  (--dart-define=GIT_SHA) et affiche a cote du numero de pubspec, pour relier
  un bundle deploye au commit exact qui l'a produit ;
- la Future de PackageInfo etait recreee a chaque build() du login, ce qui
  faisait clignoter le libelle : elle est desormais construite une seule fois.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 16:31:01 +02:00

26 lines
1.1 KiB
Docker

# Flutter 3.44.0 : la version qui compile réellement ce projet.
#
# L'image précédente épinglait cirrusci/flutter:3.7.0, qui embarque Dart 2.19,
# alors que le pubspec exige `sdk: ">=3.1.0 <4.0.0"` — le `flutter pub get`
# échouait donc, et l'image n'était plus constructible. `cirrusci` n'est de
# toute façon plus publié : le dépôt maintenu est `cirruslabs`.
FROM ghcr.io/cirruslabs/flutter:3.44.0 AS build
# ⚠️ L'URL de l'API est figée au BUILD : une image est liée à un environnement.
# Sans cet argument, elle vaut localhost:5000 et l'image déployée ne parle à rien.
# docker build --build-arg API_BASE_URL=https://api.mymuseum.be -t ... .
ARG API_BASE_URL=http://localhost:5000
# Empreinte du commit, affichee sur l'ecran de login (voir kGitSha).
# docker build --build-arg GIT_SHA=$(git rev-parse --short HEAD) ...
ARG GIT_SHA=dev
WORKDIR /app
COPY . .
RUN flutter pub get
RUN flutter build web --release --dart-define=API_BASE_URL=$API_BASE_URL --dart-define=GIT_SHA=$GIT_SHA
FROM nginx:1.27-alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/build/web /usr/share/nginx/html