ezmarynoori commited on
Commit
0bc3011
·
verified ·
1 Parent(s): 68ff7b8

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +8 -14
Dockerfile CHANGED
@@ -1,12 +1,8 @@
1
- # استفاده از نسخه سبک پایتون 3.9
2
  FROM python:3.9-slim
3
 
4
- # تنظیم متغیرهای محیطی برای جلوگیری از ایجاد فایل‌های pyc و بافر شدن خروجی
5
  ENV PYTHONDONTWRITEBYTECODE=1 \
6
  PYTHONUNBUFFERED=1
7
 
8
- # 1. نصب پیش‌نیازهای سیستمی (بسیار مهم برای WeasyPrint)
9
- # WeasyPrint برای تبدیل HTML به PDF به کتابخانه‌های گرافیکی لینوکس نیاز دارد
10
  RUN apt-get update && apt-get install -y \
11
  build-essential \
12
  python3-dev \
@@ -23,26 +19,24 @@ RUN apt-get update && apt-get install -y \
23
  fontconfig \
24
  && apt-get clean && rm -rf /var/lib/apt/lists/*
25
 
26
- # 2. تنظیم کاربر (Hugging Face Spaces به صورت پیش‌فرض با کاربر 1000 اجرا می‌شود)
27
  RUN useradd -m -u 1000 user
28
  USER user
29
  ENV HOME=/home/user \
30
  PATH=/home/user/.local/bin:$PATH
31
 
32
- # تنظیم دایرکتوری کاری
33
  WORKDIR $HOME/app
34
 
35
- # 3. کپی کردن فایل requirements و نصب کتابخانه‌های پایتون
36
- COPY --chown=user requirements.txt requirements.txt
37
- RUN pip install --no-cache-dir --upgrade pip && \
38
- pip install --no-cache-dir -r requirements.txt
39
 
40
- # 4. کپی کردن کل فایل‌های پروژه به داخل کانتینر
41
  COPY --chown=user . .
42
 
43
- # 5. باز کردن پورت 7860 (پورت استاندارد هاگینگ فیس)
 
 
 
44
  EXPOSE 7860
45
 
46
- # 6. اجرای برنامه با استفاده از Gunicorn
47
- # نکته: app:app به معنی فایل app.py و متغیر app داخل آن است
48
  CMD ["gunicorn", "-b", "0.0.0.0:7860", "app:app"]
 
 
1
  FROM python:3.9-slim
2
 
 
3
  ENV PYTHONDONTWRITEBYTECODE=1 \
4
  PYTHONUNBUFFERED=1
5
 
 
 
6
  RUN apt-get update && apt-get install -y \
7
  build-essential \
8
  python3-dev \
 
19
  fontconfig \
20
  && apt-get clean && rm -rf /var/lib/apt/lists/*
21
 
 
22
  RUN useradd -m -u 1000 user
23
  USER user
24
  ENV HOME=/home/user \
25
  PATH=/home/user/.local/bin:$PATH
26
 
 
27
  WORKDIR $HOME/app
28
 
29
+ # --- بخش دیباگ (برای پیدا کردن مشکل) ---
30
+ # این دستور لیست تمام فایل‌هایی که داکر می‌بیند را در لاگ چاپ می‌کند
31
+ RUN echo "=== LIST OF FILES IN DOCKER CONTEXT ===" && ls -laR . && echo "========================================="
 
32
 
33
+ # کپی کردن فایل‌ها (با دستور عمومی‌تر برای جلوگیری از خطا در این مرحله)
34
  COPY --chown=user . .
35
 
36
+ # نصب پکیج‌ها (حالا که همه چیز کپی شده، فایل را از داخل کانتینر می‌خوانیم)
37
+ RUN pip install --no-cache-dir --upgrade pip && \
38
+ if [ -f requirements.txt ]; then pip install --no-cache-dir -r requirements.txt; else echo "WARNING: requirements.txt not found in root!"; fi
39
+
40
  EXPOSE 7860
41
 
 
 
42
  CMD ["gunicorn", "-b", "0.0.0.0:7860", "app:app"]