Spaces:
Sleeping
Sleeping
| FROM python:3.13.5-slim | |
| # 1. SETUP INICIAL | |
| WORKDIR /app | |
| RUN apt-get update && apt-get install -y \ | |
| build-essential \ | |
| curl \ | |
| git \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 2. CREACI脫N DE USUARIO (con directorio home para pip) | |
| RUN useradd -m -s /bin/bash appuser | |
| # 3. COPIA Y PERMISOS (Root es el 煤nico que puede hacer esto) | |
| # Esto DEBE ir antes de cambiar a 'appuser' | |
| COPY requirements.txt ./ | |
| COPY src/ ./src/ | |
| COPY . . | |
| # Asegura que el c贸digo copiado sea propiedad de appuser | |
| RUN chown -R appuser:appuser /app | |
| # 4. CONFIGURACI脫N DEL ENTORNO Y USUARIO | |
| # Agrega el directorio de binarios de pip al PATH para que 'streamlit' sea visible. | |
| ENV PATH="/home/appuser/.local/bin/:${PATH}" | |
| # Cambia el usuario para todas las operaciones subsiguientes | |
| USER appuser | |
| # 5. INSTALACI脫N DE DEPENDENCIAS | |
| # Ahora la instalaci贸n se ejecuta como appuser y usa el PATH correcto | |
| RUN pip3 install -r requirements.txt | |
| # 6. EJECUCI脫N | |
| EXPOSE 8501 | |
| HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health | |
| ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"] |