akdNIKY commited on
Commit
b3f52dc
·
verified ·
1 Parent(s): faf4851

Upload Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +39 -0
Dockerfile ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Dockerfile
2
+
3
+ # استفاده از یک ایمیج پایه پایتون
4
+ # این خط به Hugging Face می‌گوید که از یک نسخه رسمی پایتون بر پایه Debian (سبک) استفاده کند.
5
+ FROM python:3.9-slim-buster
6
+
7
+ # نصب FFmpeg و libopus-dev
8
+ # این دستورات ابزارهای لازم برای پردازش صدا و ویدیو را در محیط کانتینر نصب می‌کنند.
9
+ # `apt-get update` لیست بسته‌های موجود را به‌روز می‌کند.
10
+ # `apt-get install -y` بسته‌های مشخص شده را نصب می‌کند (y به معنی Yes برای تایید نصب).
11
+ # `ffmpeg` ابزار اصلی پردازش صدا و ویدیو است.
12
+ # `libopus-dev` برای پشتیبانی از کدک Opus (ویس‌های تلگرام) توسط pydub لازم است.
13
+ # `rm -rf /var/lib/apt/lists/*` فایل‌های موقت دانلود شده را پاک می‌کند تا حجم ایمیج کم شود.
14
+ RUN apt-get update && apt-get install -y ffmpeg libopus-dev && rm -rf /var/lib/apt/lists/*
15
+
16
+ # تنظیم دایرکتوری کاری در کانتینر
17
+ # تمام عملیات‌های بعدی در داخل این پوشه انجام می‌شوند.
18
+ WORKDIR /app
19
+
20
+ # کپی کردن فایل requirements.txt و نصب کتابخانه‌های پایتون
21
+ # این کار بهینه‌تر است زیرا اگر فقط کد تغییر کند، لایه‌های قبلی کش (cache) می‌شوند و ساخت سریع‌تر می‌شود.
22
+ COPY requirements.txt .
23
+ RUN pip install --no-cache-dir -r requirements.txt
24
+
25
+ # کپی کردن تمام فایل‌های پروژه (شامل app.py و channels.json) به داخل کانتینر
26
+ # `.` اول به معنی "همه فایل‌ها و پوشه‌های موجود در دایرکتوری فعلی پروژه موبایل شما" است.
27
+ # `.` دوم به معنی "به دایرکتوری کاری فعلی در کانتینر (/app)" است.
28
+ COPY . .
29
+
30
+ # تنظیم پورت برای Flask
31
+ # Hugging Face Spaces معمولاً از پورت 7860 برای برنامه‌های وب استفاده می‌کند.
32
+ ENV PORT 7860
33
+
34
+ # دستور اجرای برنامه
35
+ # `CMD` دستوری است که هنگام شروع کانتینر اجرا می‌شود.
36
+ # `exec gunicorn` یک سرور وب پایتون است که برنامه Flask شما را اجرا می‌کند.
37
+ # `--bind 0.0.0.0:$PORT` به gunicorn می‌گوید که روی تمام آدرس‌های شبکه و پورتی که در ENV PORT تنظیم شده، گوش دهد.
38
+ # `app:flask_app` به gunicorn می‌گوید که شیء `flask_app` را از فایل `app.py` اجرا کند.
39
+ CMD exec gunicorn --bind 0.0.0.0:$PORT app:flask_app