EnzGamers commited on
Commit
baea2d7
·
verified ·
1 Parent(s): d0c640a

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +25 -29
Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- # Étape 1: Utiliser une image Python de base stable.
2
  FROM python:3.11-slim
3
 
4
  # Définir l'utilisateur sur root pour les installations.
@@ -14,42 +14,38 @@ ENV DB_PORT="6543"
14
  ENV DB_NAME="postgres"
15
  ENV DATABASE_URL=$DATABASE_URL
16
 
17
- # Configuration cruciale pour les builds non-interactifs.
18
  ENV DEBIAN_FRONTEND=noninteractive
19
  ENV POETRY_NO_INTERACTION=1
20
  ENV POETRY_VIRTUALENVS_IN_PROJECT=true
 
 
21
 
22
- # ---- Étape 3: Installation des dépendances système ----
23
- # Installer git et les outils de build nécessaires.
 
24
  RUN apt-get update && apt-get install -y --no-install-recommends \
25
- git \
26
- postgresql-client \
27
- libpq-dev \
28
- build-essential \
29
- && rm -rf /var/lib/apt/lists/*
30
-
31
- # ---- Étape 4: Préparation de l'application ----
32
- # Définir le répertoire de travail racine.
33
- WORKDIR /app
34
-
35
- # Cloner le dépôt ENTIER pour préserver la structure du monorepo.
36
- # --depth 1 accélère le clonage en ne prenant que la dernière version.
37
- RUN git clone --depth 1 https://github.com/simstudioai/sim .
38
-
39
- # ---- Étape 5: Installation des dépendances (LA CORRECTION DÉFINITIVE) ----
40
- # On installe poetry, puis DANS LA MÊME COMMANDE RUN, on se déplace
41
- # dans le bon dossier et on lance l'installation.
42
- # Cet enchaînement avec '&&' garantit que tout s'exécute dans le même shell,
43
- # éliminant ainsi toute ambiguïté de contexte.
44
- RUN pip install poetry \
45
  && cd /app/packages/python \
46
  && poetry install --no-ansi --no-dev
47
 
48
- # ---- Étape 6: Lancement de l'application ----
 
 
 
 
49
  # Le port par défaut pour les Spaces Hugging Face.
50
  ENV PORT=7860
51
 
52
- # La commande de lancement est exécutée depuis la racine /app.
53
- # L'interpréteur Python trouvera le module 'sim.main' dans 'apps/sim'
54
- # car l'environnement poetry a été configuré pour connaître ce chemin.
55
- CMD ["poetry", "run", "python", "-m", "sim.main"]
 
 
1
+ # Étape 1: Utiliser une image Python de base, stable et éprouvée.
2
  FROM python:3.11-slim
3
 
4
  # Définir l'utilisateur sur root pour les installations.
 
14
  ENV DB_NAME="postgres"
15
  ENV DATABASE_URL=$DATABASE_URL
16
 
17
+ # Configuration cruciale pour les builds non-interactifs et le comportement de Poetry.
18
  ENV DEBIAN_FRONTEND=noninteractive
19
  ENV POETRY_NO_INTERACTION=1
20
  ENV POETRY_VIRTUALENVS_IN_PROJECT=true
21
+ # Ajout au PATH pour que la commande 'poetry' soit toujours trouvée.
22
+ ENV PATH="/root/.local/bin:${PATH}"
23
 
24
+ # ---- Étape 3: Installation, Clonage et Dépendances en UNE SEULE ÉTAPE ----
25
+ # C'est la correction la plus importante. Tout est enchaîné avec '&&'
26
+ # pour garantir l'exécution dans un seul shell, sans perte de contexte.
27
  RUN apt-get update && apt-get install -y --no-install-recommends \
28
+ git \
29
+ postgresql-client \
30
+ libpq-dev \
31
+ build-essential \
32
+ && rm -rf /var/lib/apt/lists/* \
33
+ && git clone --depth 1 https://github.com/simstudioai/sim /app \
34
+ && cd /app \
35
+ && pip install --no-cache-dir poetry \
 
 
 
 
 
 
 
 
 
 
 
 
36
  && cd /app/packages/python \
37
  && poetry install --no-ansi --no-dev
38
 
39
+ # ---- Étape 4: Définir le répertoire de travail final ----
40
+ # Nous nous plaçons à la racine du projet pour l'exécution.
41
+ WORKDIR /app
42
+
43
+ # ---- Étape 5: Lancement de l'application ----
44
  # Le port par défaut pour les Spaces Hugging Face.
45
  ENV PORT=7860
46
 
47
+ # La commande de lancement la plus explicite et la plus sûre :
48
+ # Nous appelons directement l'exécutable Python de l'environnement virtuel (.venv)
49
+ # que Poetry a créé. Cela élimine toute dépendance à 'poetry run' et à la
50
+ # détection de l'environnement, qui peut être fragile.
51
+ CMD ["/app/packages/python/.venv/bin/python", "-m", "sim.main"]