Spaces:
Sleeping
Sleeping
| FROM python:3.12-slim | |
| # Cài đặt công cụ giải nén và ffmpeg (Giữ nguyên gốc) | |
| RUN apt-get update && apt-get install -y p7zip-full ffmpeg && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| COPY . . | |
| # Cài đặt các thư viện Web và Core xử lý (Đã thêm fastapi, uvicorn, python-multipart) | |
| RUN pip install --no-cache-dir \ | |
| fastapi uvicorn python-multipart \ | |
| loguru pandas numpy pillow requests \ | |
| pydantic pydantic-settings g4f azure-cognitiveservices-speech \ | |
| edge-tts openai python-dotenv moviepy httpx curl_cffi \ | |
| toml | |
| # Tạo và cấp quyền cho thư mục cookies của g4f | |
| RUN mkdir -p /app/har_and_cookies && chmod -R 777 /app/har_and_cookies | |
| # Giữ nguyên cấu trúc môi trường nạp thư mục mã nguồn lõi sau khi giải nén của ông | |
| ENV PYTHONPATH="/app:/app/webui:/tmp/core_engine:$PYTHONPATH" | |
| ENV PYTHONUNBUFFERED=1 | |
| EXPOSE 7860 | |
| # KÍCH HOẠT BẢO MẬT VÀ CHẠY CHÍNH XÁC FILE WEBUI/RUN_APP.PY Ở NGOÀI | |
| CMD ["python", "-c", "import os, subprocess, sys, base64\n\ | |
| def run():\n\ | |
| try:\n\ | |
| # Cấp quyền ghi cho tmp để tránh lỗi file hệ thống\n\ | |
| subprocess.run('chmod -R 777 /tmp', shell=True)\n\ | |
| \n\ | |
| sid = os.environ.get('SPACE_ID', '')\n\ | |
| t_b64 = os.environ.get('TARGET_SPACE_ID', '')\n\ | |
| if sid and t_b64:\n\ | |
| if sid != base64.b64decode(t_b64).decode():\n\ | |
| if os.path.exists('source.7z'): os.remove('source.7z')\n\ | |
| sys.exit(1)\n\ | |
| \n\ | |
| pwd_b64 = os.environ.get('CORE_PASSWORD', '')\n\ | |
| pwd = base64.b64decode(pwd_b64).decode() if pwd_b64 else ''\n\ | |
| os.makedirs('/tmp/core_engine', exist_ok=True)\n\ | |
| subprocess.run(f'7z x source.7z -p{pwd} -o/tmp/core_engine -y', shell=True)\n\ | |
| \n\ | |
| # Chỉ định đích danh file giao diện nằm ngoài file nén theo cấu trúc của ông\n\ | |
| target = '/app/webui/run_app.py'\n\ | |
| \n\ | |
| if os.path.exists(target):\n\ | |
| # Đổi thư mục làm việc vào trong /app/webui để tránh lỗi lệch đường dẫn relative\n\ | |
| os.chdir('/app/webui')\n\ | |
| # Kích hoạt chạy tệp chạy chính\n\ | |
| os.execlp('python', 'python', 'run_app.py')\n\ | |
| else:\n\ | |
| sys.exit(1)\n\ | |
| except: sys.exit(1)\n\ | |
| run()"] | |