# FROM python:3.9-slim # WORKDIR /app # # Install system dependencies # RUN apt-get update && apt-get install -y \ # build-essential \ # curl \ # software-properties-common \ # git \ # && rm -rf /var/lib/apt/lists/* # # Copy requirements.txt and install Python dependencies # COPY requirements.txt ./ # RUN pip3 install -r requirements.txt # # Copy the 'src' folder into the container's '/app/src' directory # COPY src/ ./src/ # # IMPORTANT: Copy all other files and folders from the project root # # (like .streamlit/, helper.py, preprocessor.py, stop_hinglish.txt, etc.) # # into the container's /app directory. # COPY . . # # Set environment variable for Matplotlib cache to a writable directory # ENV MPLCONFIGDIR=/tmp # EXPOSE 8501 # HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health # # Entrypoint to run your Streamlit application from its location in src/ # ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"] FROM python:3.9-slim WORKDIR /app # Install necessary system dependencies, excluding the problematic 'software-properties-common' # 'build-essential' is for compiling Python dependencies if needed. RUN apt-get update && apt-get install -y \ build-essential \ curl \ git \ && rm -rf /var/lib/apt/lists/* # Copy requirements.txt and install Python dependencies COPY requirements.txt ./ RUN pip3 install -r requirements.txt # Copy the application files. # It's better practice to keep app.py and helper/preprocessor in the root if Streamlit app is in src/, # but following your structure: COPY src/ ./src/ # Copy essential files that the Streamlit app relies on directly (like stop_hinglish.txt) COPY . . # Set environment variable for Matplotlib cache to a writable directory ENV MPLCONFIGDIR=/tmp EXPOSE 8501 HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health # Entrypoint to run your Streamlit application from its location in src/ ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]