|
|
|
|
|
|
| FROM python:3.10-slim
|
|
|
|
|
| ENV PYTHONUNBUFFERED=1 \
|
| PYTHONDONTWRITEBYTECODE=1 \
|
| PIP_NO_CACHE_DIR=1 \
|
| PIP_DISABLE_PIP_VERSION_CHECK=1
|
|
|
|
|
| ENV GRADIO_SERVER_NAME="0.0.0.0" \
|
| GRADIO_SERVER_PORT=7860
|
|
|
|
|
| RUN apt-get update && apt-get install -y --no-install-recommends \
|
| git \
|
| libgl1 \
|
| libglib2.0-0 \
|
| libsm6 \
|
| libxext6 \
|
| libxrender-dev \
|
| libgomp1 \
|
| wget \
|
| curl \
|
| fonts-dejavu-core \
|
| && rm -rf /var/lib/apt/lists/*
|
|
|
|
|
| RUN useradd -m -u 1000 user
|
| WORKDIR /app
|
|
|
|
|
| COPY --chown=user requirements.txt .
|
|
|
|
|
| RUN pip install --upgrade pip && \
|
| pip install -r requirements.txt
|
|
|
|
|
| COPY --chown=user . .
|
|
|
|
|
| RUN mkdir -p /app/uploads /app/outputs && \
|
| chown -R user:user /app
|
|
|
|
|
| USER user
|
|
|
|
|
| EXPOSE 7860
|
|
|
|
|
| HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
| CMD curl -f http://localhost:7860/ || exit 1
|
|
|
|
|
| CMD ["gunicorn", "--bind", "0.0.0.0:7860", "--workers", "1", "--threads", "4", "--timeout", "120", "app:app"]
|
|
|