FROM python:3.12-slim # Install nginx RUN apt-get update && apt-get install -y nginx && \ apt-get clean && rm -rf /var/lib/apt/lists/* # Create user RUN useradd -m -u 1000 user # Install Python packages globally so they're accessible to all users WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt # Copy nginx configuration COPY nginx.conf /app/nginx.conf # Create nginx directories and set permissions for user RUN mkdir -p /var/run/nginx /var/log/nginx /var/lib/nginx/body /var/lib/nginx/fastcgi \ /var/lib/nginx/proxy /var/lib/nginx/scgi /var/lib/nginx/uwsgi && \ chown -R user:user /var/run/nginx /var/log/nginx /var/lib/nginx # Copy application files and make script executable COPY --chown=user . /app RUN chmod +x /app/start.sh # Switch to user for execution USER user ENV PATH="/home/user/.local/bin:$PATH" ENV GRADIO_ANALYTICS_ENABLED=False ENV GRADIO_ANALYTICS_ENABLED=false ENV HF_HUB_DISABLE_TELEMETRY=1 ENV GRADIO_TELEMETRY_ENABLED=False ENV MPLCONFIGDIR=/tmp/matplotlib EXPOSE 7860 CMD ["/app/start.sh"]