FROM python:3.9 # Create non-root user RUN useradd -m -u 1000 user USER user # Set environment variables ENV PATH="/home/user/.local/bin:$PATH" ENV NLTK_DATA="/home/user/nltk_data" # Set working directory WORKDIR /app # Copy and install dependencies COPY --chown=user requirements.txt . RUN pip install --no-cache-dir --upgrade -r requirements.txt # Prepare NLTK data directory and download punkt RUN mkdir -p $NLTK_DATA COPY --chown=user download_nltk_data.py . RUN python download_nltk_data.py && rm download_nltk_data.py # Copy app code COPY --chown=user . . # Run the app CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]