Opera8 commited on
Commit
58f76b4
·
verified ·
1 Parent(s): 57e1f10

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +40 -0
Dockerfile ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # --- START OF Dockerfile ---
2
+
3
+ # مرحله ۱: انتخاب ایمیج پایه
4
+ # از یک ایمیج رسمی و سبک پایتون استفاده می‌کنیم تا حجم نهایی کانتینر کم باشد.
5
+ FROM python:3.11-slim
6
+
7
+ # تنظیم متغیرهای محیطی برای عملکرد بهتر پایتون در داکر
8
+ ENV PYTHONDONTWRITEBYTECODE 1
9
+ ENV PYTHONUNBUFFERED 1
10
+
11
+ # مرحله ۲: تنظیم دایرکتوری کاری
12
+ # تمام دستورات بعدی در این مسیر داخل کانتینر اجرا خواهند شد.
13
+ WORKDIR /app
14
+
15
+ # مرحله ۳: کپی و نصب نیازمندی‌ها
16
+ # ابتدا فقط فایل نیازمندی‌ها را کپی می‌کنیم. این کار به داکر اجازه می‌دهد
17
+ # تا از لایه کش شده استفاده کند و در صورت تغییر نکردن این فایل،
18
+ # مراحل نصب را دوباره انجام ندهد و سرعت ساخت ایمیج بالا برود.
19
+ COPY requirements.txt .
20
+
21
+ # نصب کتابخانه‌ها با استفاده از pip
22
+ # --no-cache-dir: از ذخیره کش pip جلوگیری می‌کند تا حجم ایمیج کمتر شود.
23
+ RUN pip install --no-cache-dir -r requirements.txt
24
+
25
+ # مرحله ۴: کپی کردن سورس کد برنامه
26
+ # حالا تمام فایل‌های پروژه (app.py, پوشه templates و ...) را به دایرکتوری کاری کپی می‌کنیم.
27
+ COPY . .
28
+
29
+ # مرحله ۵: باز کردن پورت
30
+ # به داکر اعلام می‌کنیم که این کانتینر روی پورت 7860 گوش می‌دهد.
31
+ # این پورت استاندارد هاگینگ فیس برای Gradio و اپلیکیشن‌های مشابه است.
32
+ EXPOSE 7860
33
+
34
+ # مرحله ۶: دستور اجرا
35
+ # دستوری که هنگام استارت شدن کانتینر اجرا می‌شود.
36
+ # uvicorn را برای اجرای اپلیکیشن FastAPI خود فراخوانی می‌کنیم.
37
+ # --host 0.0.0.0: باعث می‌شود اپلیکیشن از خارج کانتینر قابل دسترس باشد.
38
+ CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
39
+
40
+ # --- END OF Dockerfile ---