maribakulj commited on
Commit
7a648f5
Β·
unverified Β·
2 Parent(s): 94f8f4ea8c3223

Merge pull request #29 from maribakulj/claude/review-and-plan-r20qn

Browse files

fix(docker): synchroniser le Dockerfile racine avec infra/Dockerfile

Dockerfile CHANGED
@@ -1,6 +1,6 @@
1
  # Scriptorium AI β€” image de production (multi-stage)
2
- # Ce fichier est la copie exacte de infra/Dockerfile.
3
- # Il est requis Γ  la racine du dΓ©pΓ΄t pour HuggingFace Spaces (SDK docker).
4
  #
5
  # Build depuis la racine du dΓ©pΓ΄t :
6
  # docker build -t scriptorium-ai .
@@ -30,9 +30,14 @@ WORKDIR /app
30
  COPY backend/pyproject.toml /tmp/build/
31
  RUN mkdir -p /tmp/build/app \
32
  && touch /tmp/build/app/__init__.py \
33
- && pip install --no-cache-dir /tmp/build/ \
34
  && rm -rf /tmp/build
35
 
 
 
 
 
 
36
  # ── Code source backend ────────────────────────────────────────────────────
37
  COPY backend/app ./backend/app
38
  COPY profiles/ ./profiles/
@@ -44,10 +49,9 @@ COPY --from=frontend-builder /frontend/dist ./static
44
  # ── RΓ©pertoire des artefacts (vide dans l'image ; montΓ© en volume) ─────────
45
  RUN mkdir -p /app/data
46
 
47
- # ── Secrets Google AI : JAMAIS dans l'image (R06) ─────────────────────────
48
- # Passer au runtime via -e ou les Secrets HuggingFace Spaces :
49
- # AI_PROVIDER, GOOGLE_AI_STUDIO_API_KEY, GOOGLE_AI_API_KEY,
50
- # GOOGLE_VERTEX_PROJECT, GOOGLE_VERTEX_LOCATION
51
 
52
  # PYTHONPATH permet l'import `app.main:app` depuis /app/backend/app/
53
  ENV PYTHONPATH=/app/backend
 
1
  # Scriptorium AI β€” image de production (multi-stage)
2
+ # Ce fichier est utilisΓ© par HuggingFace Spaces (SDK docker, dΓ©tection automatique).
3
+ # Il doit rester synchronisΓ© avec infra/Dockerfile.
4
  #
5
  # Build depuis la racine du dΓ©pΓ΄t :
6
  # docker build -t scriptorium-ai .
 
30
  COPY backend/pyproject.toml /tmp/build/
31
  RUN mkdir -p /tmp/build/app \
32
  && touch /tmp/build/app/__init__.py \
33
+ && pip install --no-cache-dir --upgrade /tmp/build/ \
34
  && rm -rf /tmp/build
35
 
36
+ # ── Layer dΓ©diΓ© mistralai β€” garantit v1.x mΓͺme si le cache pip rΓ©sout autrement ──
37
+ # Layer sΓ©parΓ© pour s'assurer que mistralai>=1.0 est bien installΓ©.
38
+ # Sans cette ligne, une rΓ©solution de dΓ©pendances conflictuelle peut installer v0.x.
39
+ RUN pip install --no-cache-dir 'mistralai>=1.0,<2.0'
40
+
41
  # ── Code source backend ────────────────────────────────────────────────────
42
  COPY backend/app ./backend/app
43
  COPY profiles/ ./profiles/
 
49
  # ── RΓ©pertoire des artefacts (vide dans l'image ; montΓ© en volume) ─────────
50
  RUN mkdir -p /app/data
51
 
52
+ # ── Secrets : JAMAIS dans l'image (R06) ────────────────────────────────────
53
+ # Passer au runtime via les Secrets HuggingFace Spaces :
54
+ # GOOGLE_AI_STUDIO_API_KEY, MISTRAL_API_KEY, VERTEX_SERVICE_ACCOUNT_JSON
 
55
 
56
  # PYTHONPATH permet l'import `app.main:app` depuis /app/backend/app/
57
  ENV PYTHONPATH=/app/backend
backend/app/services/ai/provider_mistral.py CHANGED
@@ -105,12 +105,12 @@ class MistralProvider(AIProvider):
105
  try:
106
  from mistralai import Mistral # noqa: F401
107
  return True
108
- except ImportError:
109
  logger.warning(
110
  "MISTRAL_API_KEY est dΓ©finie mais mistralai>=1.0 n'est pas disponible "
111
  "(version 0.x dΓ©tectΓ©e ou package absent). "
112
- "Provider Mistral marquΓ© indisponible. "
113
- "Reconstruisez le container : docker build --no-cache ..."
114
  )
115
  return False
116
 
 
105
  try:
106
  from mistralai import Mistral # noqa: F401
107
  return True
108
+ except ImportError as exc:
109
  logger.warning(
110
  "MISTRAL_API_KEY est dΓ©finie mais mistralai>=1.0 n'est pas disponible "
111
  "(version 0.x dΓ©tectΓ©e ou package absent). "
112
+ "Provider Mistral marquΓ© indisponible. Erreur : %s",
113
+ exc,
114
  )
115
  return False
116