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>
26 lines
1.1 KiB
Docker
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
|