FROM python:3.9-slim WORKDIR /app # Copy requirements first to leverage Docker cache COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copy the rest of the application COPY . . # Create necessary directories RUN mkdir -p data/raw data/processed models # Expose ports for API and Streamlit EXPOSE 8000 8501 # Command to run both the API and Streamlit app CMD ["sh", "-c", "uvicorn src.api.app:app --host 0.0.0.0 --port 8000 & streamlit run src/web/app.py --server.port 8501 --server.address 0.0.0.0"]