Spaces:
Sleeping
Sleeping
| # ============================================================================ | |
| # SmartEyeSsen Backend - Hugging Face Spaces Dockerfile | |
| # ============================================================================ | |
| # Hugging Face Spaces ๋ฐฐํฌ ์ ์ฉ Dockerfile | |
| # - 16GB RAM ํ์ฉ (DocLayout-YOLO + PyTorch) | |
| # - ๋น-๋ฃจํธ ์ฌ์ฉ์ ์คํ (๋ณด์ ์๊ตฌ์ฌํญ) | |
| # - ํฌํธ 7860 ํ์ (HF Spaces ํ์ค) | |
| # ============================================================================ | |
| FROM python:3.10-slim | |
| # ============================================================================ | |
| # 1. ์์คํ ํจํค์ง ์ค์น (Root ๊ถํ ํ์) | |
| # ============================================================================ | |
| USER root | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| # OCR ์์ง | |
| tesseract-ocr \ | |
| tesseract-ocr-kor \ | |
| tesseract-ocr-eng \ | |
| # OpenCV ์์กด์ฑ | |
| libgl1 \ | |
| libglib2.0-0 \ | |
| # ๋น๋ ๋๊ตฌ | |
| gcc \ | |
| g++ \ | |
| # Git (DocLayout-YOLO ์ค์น์ฉ) | |
| git \ | |
| # ๋ก์ผ์ผ ์ค์ | |
| locales \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # UTF-8 ๋ก์ผ์ผ ์ค์ (ํ๊ธ ์ง์) | |
| RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \ | |
| sed -i '/ko_KR.UTF-8/s/^# //g' /etc/locale.gen && \ | |
| locale-gen | |
| # ============================================================================ | |
| # 2. ๋น-๋ฃจํธ ์ฌ์ฉ์ ์์ฑ (Hugging Face Spaces ๋ณด์ ์๊ตฌ์ฌํญ) | |
| # ============================================================================ | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| # ํ๊ฒฝ ๋ณ์ ์ค์ | |
| ENV HOME=/home/user \ | |
| PATH=/home/user/.local/bin:$PATH \ | |
| LANG=ko_KR.UTF-8 \ | |
| LANGUAGE=ko_KR:en \ | |
| LC_ALL=ko_KR.UTF-8 \ | |
| PYTHONUNBUFFERED=1 \ | |
| PYTHONDONTWRITEBYTECODE=1 | |
| # ============================================================================ | |
| # 3. ์์ ๋๋ ํ ๋ฆฌ ์ค์ | |
| # ============================================================================ | |
| WORKDIR $HOME/app | |
| # ============================================================================ | |
| # 4. Python ์์กด์ฑ ์ค์น | |
| # ============================================================================ | |
| # requirements.txt ๋จผ์ ๋ณต์ฌ (Docker ์บ์ ํ์ฉ) | |
| COPY --chown=user requirements.txt . | |
| # PyPI ํจํค์ง ์ค์น | |
| RUN pip install --no-cache-dir --upgrade pip && \ | |
| pip install --no-cache-dir -r requirements.txt | |
| # DocLayout-YOLO ์ค์น (Git ์ง์ ์ค์น) | |
| RUN pip install --no-cache-dir git+https://github.com/opendatalab/DocLayout-YOLO.git | |
| # ============================================================================ | |
| # 5. ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋ ๋ณต์ฌ | |
| # ============================================================================ | |
| COPY --chown=user . . | |
| # ============================================================================ | |
| # 6. ์์ ์ ์ฅ์ ๋๋ ํ ๋ฆฌ ์์ฑ | |
| # ============================================================================ | |
| # HF Spaces๋ /tmp ์ธ์๋ ์ฐ๊ธฐ ๊ถํ ์ ํ๋ ์ ์์ | |
| RUN mkdir -p /tmp/uploads && \ | |
| mkdir -p $HOME/app/uploads $HOME/app/static $HOME/app/test_pipeline_outputs && \ | |
| chmod -R 755 $HOME/app/uploads $HOME/app/static $HOME/app/test_pipeline_outputs | |
| ENV TMPDIR=/tmp/uploads | |
| # ============================================================================ | |
| # 7. Tesseract ์ค์น ํ์ธ | |
| # ============================================================================ | |
| RUN tesseract --version && tesseract --list-langs | |
| # ============================================================================ | |
| # 8. ํฌํธ ์ค์ (HF Spaces ํ์ ํฌํธ) | |
| # ============================================================================ | |
| EXPOSE 7860 | |
| # ============================================================================ | |
| # 9. ์๋ฒ ์คํ | |
| # ============================================================================ | |
| # Hugging Face Spaces๋ 7860 ํฌํธ ํ์ | |
| CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860", "--timeout-keep-alive", "300"] | |