Spaces:
Sleeping
Sleeping
| # ==================================================================== | |
| # Dockerfile for Hugging Face Space (Docker runtime) | |
| # Nginx (7860) -> Uvicorn (8000), fix: nginx not found | |
| # ORIGINAL VERSION - RELIES ON HF SECRETS | |
| # ==================================================================== | |
| FROM python:3.10-slim | |
| ENV PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| PIP_NO_CACHE_DIR=1 | |
| # Install Nginx + tini (as init) | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| nginx ca-certificates bash curl tini \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 🔧 关键修正:把 /usr/sbin 加进 PATH,避免 "nginx: not found" | |
| ENV PATH="/usr/sbin:/sbin:${PATH}" | |
| WORKDIR /app | |
| # Python deps from upstream repo | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir --upgrade pip && \ | |
| pip install --no-cache-dir -r requirements.txt | |
| # App code (upstream files) — we don't modify them | |
| COPY . . | |
| # Non-root user & perms for Nginx runtime paths | |
| RUN useradd --create-home --shell /bin/bash appuser && \ | |
| mkdir -p /var/lib/nginx /var/cache/nginx /run/nginx /tmp/nginx && \ | |
| chown -R appuser:appuser /app /var/lib/nginx /var/cache/nginx /var/log/nginx /run/nginx /tmp/nginx | |
| # Use your provided nginx.conf (listens 7860, logs/pid in /tmp, user appuser) | |
| COPY nginx.conf /etc/nginx/nginx.conf | |
| # External port | |
| ENV PORT=7860 | |
| EXPOSE 7860 | |
| USER appuser | |
| ENTRYPOINT ["/usr/bin/tini","--"] | |
| # 🔧 关键修正:使用绝对路径启动 Nginx | |
| CMD bash -lc "\ | |
| uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4 & \ | |
| exec /usr/sbin/nginx -g 'daemon off;' \ | |
| " | |