| # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| # Phoenix AI โ Dockerfile (CPU + OCR) | |
| # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| # ุจูุงุก: docker build -t phoenix-ocr . | |
| # ุชุดุบูู: docker run -p 8001:8001 phoenix-ocr | |
| # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| FROM python:3.12-slim | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV PYTHONUNBUFFERED=1 | |
| ENV PYTHONDONTWRITEBYTECODE=1 | |
| # ุชูุตูุจ ุงูุฃุฏูุงุช ุงูุฃุณุงุณูุฉ ูู OpenCV ู kraken | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| libgl1 libglib2.0-0 libsm6 libxext6 libxrender1 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # ุฅุนุฏุงุฏ ุงูุฏููู | |
| WORKDIR /app | |
| # ุชูุตูุจ ุงูู ุชุทูุจุงุช ุฃููุงู (ููุงุณุชูุงุฏุฉ ู ู cache ุงูุทุจูุงุช) | |
| COPY backend/requirements.txt ./requirements.txt | |
| RUN pip install --upgrade pip && \ | |
| pip install --no-cache-dir --timeout=600 --retries=5 -r requirements.txt | |
| # โโ ุฏุนู GPU (ุงุฎุชูุงุฑู) โโ | |
| # CPU ุงูุชุฑุงุถูุงู. ููุจูุงุก ุจุฏุนู CUDA (ุชุณุฑูุน 10-30ร): | |
| # docker build --build-arg TORCH_VARIANT=cuda -t phoenix-ocr-gpu . | |
| # ุนุฌูุงุช cu121 ุชุญูู ู ูุชุจุงุช CUDAุ ูููู ุชู ุฑูุฑ ุงูู GPU ุนูุฏ ุงูุชุดุบูู (--gpus all). | |
| ARG TORCH_VARIANT=cpu | |
| RUN if [ "$TORCH_VARIANT" = "cuda" ]; then \ | |
| pip install --no-cache-dir --timeout=900 --retries=5 \ | |
| torch==2.4.1 torchvision==0.19.1 \ | |
| --index-url https://download.pytorch.org/whl/cu121 --force-reinstall && \ | |
| echo ">> CUDA torch ู ุซุจูุช"; \ | |
| fi | |
| # ูุณุฎ ุงูููุฏ | |
| COPY backend/ ./backend/ | |
| COPY frontend/ ./frontend/ | |
| # ูุณุฎ ุงููู ุงุฐุฌ | |
| COPY ูู ุงุฐุฌ/ ./ูู ุงุฐุฌ/ | |
| # ูุง ููุณุฎ ู ูู .env ุฏุงุฎู ุงูุตูุฑุฉ ูุถู ุงู ุงูุฃู ุงูุ ูููุถู ุชู ุฑูุฑู ูู ุชุบูุฑุงุช ุจูุฆุฉ ุนูุฏ ุงูุชุดุบูู | |
| # ุงูู ููุฐ | |
| EXPOSE 8001 | |
| # ููุทุฉ ุงูุฏุฎูู | |
| WORKDIR /app/backend | |
| CMD ["python", "-m", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8001", "--workers", "2"] | |