AI-Video-Engine / Dockerfile
AbuAlone09's picture
Update Dockerfile
0b4b45f verified
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()"]