File size: 2,363 Bytes
51d6d4d
 
dcacd47
51d6d4d
 
 
 
 
0b4b45f
a59cc7d
dcacd47
9811139
982f9a4
cbd9d0c
 
51d6d4d
0b4b45f
d92dfbc
 
0b4b45f
51d6d4d
 
 
dcacd47
 
0b4b45f
51d6d4d
 
 
0b4b45f
d92dfbc
 
51d6d4d
 
 
 
 
 
 
 
 
 
 
 
0b4b45f
 
51d6d4d
 
0b4b45f
 
 
 
51d6d4d
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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 xlý (Đã 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ạocp quyền cho thư mc cookies ca g4f
RUN mkdir -p /app/har_and_cookies && chmod -R 777 /app/har_and_cookies

# Giữ nguyên cu trúc môi trường nạp thư mc mã nguồn lõi sau khi giải nén ca ô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 cu trúc ca ông\n\
        target = '/app/webui/run_app.py'\n\
        \n\
        if os.path.exists(target):\n\
            # Đổi thư mc làm vico 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()"]