EnzGamers commited on
Commit
623d18f
·
verified ·
1 Parent(s): f6f2109

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +35 -38
Dockerfile CHANGED
@@ -1,53 +1,50 @@
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.
5
- USER root
6
-
7
- # ---- Étape 2: Configuration des variables d'environnement ----
8
- # Ces variables seront remplacées par les secrets de votre Space Hugging Face.
9
- ENV DB_TYPE="postgresql"
10
- ENV DB_USER=$DB_POSTGRESDB_USER
11
- ENV DB_PASSWORD=$DB_POSTGRESDB_PASSWORD
12
- ENV DB_HOST=$DB_POSTGRESDB_HOST
13
- ENV DB_PORT="6543"
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 des dépendances système ----
25
- RUN apt-get update && apt-get install -y --no-install-recommends \
26
  git \
27
  postgresql-client \
28
  libpq-dev \
29
  build-essential \
30
- && rm -rf /var/lib/apt/lists/*
 
 
 
31
 
32
- # ---- Étape 4: Préparation de l'application ----
33
- # On définit le répertoire de travail final UNE SEULE FOIS.
34
  WORKDIR /app
35
 
36
- # On clone le contenu du dépôt DANS le répertoire de travail courant ('.').
37
- RUN git clone --depth 1 https://github.com/simstudioai/sim .
38
 
39
- # ---- Étape 5: Installation des dépendances Python (MÉTHODE INFALLIBLE) ----
40
- # On installe poetry globalement.
41
  RUN pip install --no-cache-dir poetry
42
 
43
- # On lance l'installation en disant explicitement à poetry où se trouve le projet.
44
- # Cette méthode est la plus robuste car elle ne dépend pas du répertoire courant du shell ('cd').
45
- RUN poetry --directory=packages/python install --no-ansi --no-dev
46
 
47
- # ---- Étape 6: Lancement de l'application ----
48
- # Le port par défaut pour les Spaces Hugging Face.
 
 
49
  ENV PORT=7860
 
50
 
51
- # La commande de lancement la plus robuste : on appelle directement l'exécutable
52
- # Python de l'environnement virtuel (.venv) que Poetry a créé.
53
- CMD ["/app/packages/python/.venv/bin/python", "-m", "sim.main"]
 
1
+ # Use an official Python runtime as a base image
2
  FROM python:3.11-slim
3
 
4
+ # Set build-time arguments for environment variables (if needed)
5
+ ARG MODEL_REPO_NAME
6
+
7
+ # Configure environment variables for Python and Poetry
8
+ ENV PYTHONUNBUFFERED=1 \
9
+ PIP_NO_CACHE_DIR=on \
10
+ PIP_DISABLE_PIP_VERSION_CHECK=on \
11
+ POETRY_NO_INTERACTION=1 \
12
+ POETRY_VIRTUALENVS_IN_PROJECT=true \
13
+ POETRY_VIRTUALENVS_CREATE=true \
14
+ PATH="/app/.venv/bin:$PATH"
15
+
16
+ # Install system dependencies and create a non-root user
17
+ RUN set -ex \
18
+ && apt-get update \
19
+ && apt-get install -y --no-install-recommends \
 
 
 
 
 
 
20
  git \
21
  postgresql-client \
22
  libpq-dev \
23
  build-essential \
24
+ && apt-get clean \
25
+ && rm -rf /var/lib/apt/lists/* \
26
+ && addgroup --system --gid 1001 appgroup \
27
+ && adduser --system --uid 1001 --gid 1001 --no-create-home appuser
28
 
29
+ # Set the working directory
 
30
  WORKDIR /app
31
 
32
+ # Clone your repository (consider using COPY for better caching)
33
+ RUN git clone https://github.com/simstudioai/sim ./
34
 
35
+ # Install Poetry
 
36
  RUN pip install --no-cache-dir poetry
37
 
38
+ # Install Python dependencies using Poetry
39
+ # Navigate to the correct directory that contains pyproject.toml
40
+ RUN cd /app/packages/python && poetry install --no-dev --no-root
41
 
42
+ # Switch to the non-root user for security
43
+ USER appuser
44
+
45
+ # Expose the port Hugging Face Spaces expects (default is 7860)
46
  ENV PORT=7860
47
+ EXPOSE 7860
48
 
49
+ # Run your application
50
+ CMD ["python", "-m", "sim.main"]