Spaces:
Paused
Paused
Download Dockerfile from BachDaThan/Aren: direct link, hf CLI and curl.
- Browser
- Download file 4.93 kB
-
https://huggingface.co/spaces/BachDaThan/Aren/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/BachDaThan/Aren/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/BachDaThan/Aren/resolve/main/Dockerfile
4.93 kB
| ================================================================ | |
| URAL AI — Docker Space (worker satellite) | |
| Dùng cho 4 space phụ: garen / yi / aren / quok | |
| ================================================================ | |
| FROM python:3.11-slim | |
| ── 1. System deps ────────────────────────────────────────────── | |
| 🆕 FIX (2026-08-09): build build-essential (gcc/g++/make) ĐƯỢC GIỮ LẠI | |
| làm lớp an toàn dự phòng — ban đầu Dockerfile này định dùng pre-built | |
| wheel (--extra-index-url .../whl/cpu) để tránh biên dịch, nhưng THỰC | |
| TẾ ĐÃ FAIL: "CMake Error: Could not find compiler CC: gcc" — vì kho | |
| pre-built wheel của abetlen chỉ hỗ trợ MỘT SỐ version cụ thể của | |
| llama-cpp-python; nếu version pip chọn không có sẵn ở đó, pip ÂM THẦM | |
| bỏ qua extra-index-url và quay về build từ source — mà build từ | |
| source cần gcc/g++, thứ Dockerfile trước đó không cài. Giữ cả 2 lớp: | |
| pre-built wheel (nhanh, ưu tiên) + build-essential (chậm hơn nhưng | |
| LUÔN thành công nếu pre-built không khớp) — build container có thể | |
| lâu hơn vài phút ở lần đầu, nhưng không còn rủi ro fail cứng. | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| build-essential cmake \ | |
| libopus-dev libopus0 \ | |
| ffmpeg \ | |
| git curl \ | |
| && rm -rf /var/lib/apt/lists/* | |
| ── 2. Workdir ────────────────────────────────────────────────── | |
| WORKDIR /app | |
| ── 3. Python deps ────────────────────────────────────────────── | |
| 🆕 FIX (2026-08-09): BỎ cờ --only-binary=llama-cpp-python — cờ này | |
| CẤM pip build từ source, nên nếu pre-built wheel không khớp version, | |
| pip FAIL CỨNG ngay lập tức thay vì tự rơi về build từ source (mâu | |
| thuẫn với build-essential vừa thêm ở bước 1 làm lớp dự phòng). Giữ | |
| --extra-index-url để pip ƯU TIÊN thử pre-built wheel trước (nhanh), | |
| nhưng cho phép tự động build từ source nếu không tìm thấy — đúng | |
| hành vi mặc định của pip khi có --extra-index-url mà không kèm | |
| --only-binary. | |
| # 🐛 FIX (2026-08-11): file thật trong thư mục này tên là | |
| "requirements.txt" / "app.py" (thiếu chữ "r" — lỗi gõ khi | |
| tạo file), KHÔNG PHẢI "requirements.txt" / "app.py" như dòng COPY cũ | |
| yêu cầu. Trước đây Boss phải TỰ ĐỔI TÊN 2 file này bằng tay mỗi lần | |
| upload lên HF Space — bước thủ công đó dễ quên, và khi quên, `docker | |
| build` FAIL NGAY ở bước COPY (file not found) → Space chạy image build | |
| THÀNH CÔNG LẦN GẦN NHẤT trước đó (có thể là code cũ, thiếu route | |
| /api/local-llm hoặc thiếu toàn bộ local-model), không phải code hiện | |
| tại trong repo. Đây CHÍNH LÀ lý do Main Space log thấy request bị | |
| cancel ở tầng timeout mà Aren không có dòng access-log POST | |
| /api/local-llm nào — request có thể đã tới 1 container đang chạy | |
| snapshot cũ không có route đó, hoặc image build đang fail âm thầm. | |
| Sửa thẳng ở đây (COPY/CMD trỏ đúng tên file thật) để KHÔNG CẦN đổi | |
| tên tay nữa — build sẽ luôn dùng đúng code mới nhất trong repo. | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir --upgrade pip \ | |
| && pip install --no-cache-dir \ | |
| --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu \ | |
| -r requirements.txt | |
| ── 4. Copy source ────────────────────────────────────────────── | |
| 🐛 FIX (2026-08-11): copy đúng tên file thật ("app.py") rồi đặt | |
| lại thành app.py TRONG container (không đổi tên file nguồn trong repo, | |
| tránh phải sửa mọi chỗ khác đang tham chiếu "app.py" — hiện chỉ | |
| còn __pycache__ tham chiếu, nhưng giữ tên nguồn ổn định vẫn an toàn | |
| hơn đổi tên file thật). | |
| COPY app.py . | |
| COPY yui_local_model_server.py . | |
| ── 5. Port ───────────────────────────────────────────────────── | |
| EXPOSE 7860 | |
| ── 6. Khởi động ───────────────────────────────────────────────── | |
| Worker app dùng biến app_fastapi (không có Gradio mount) | |
| CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860", "--workers", "1", "--timeout-keep-alive", "75"] | |