ezmarynoori commited on
Commit
83e674f
·
verified ·
1 Parent(s): 0bc3011

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +17 -19
Dockerfile CHANGED
@@ -1,8 +1,11 @@
 
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 \
@@ -16,27 +19,22 @@ RUN apt-get update && apt-get install -y \
16
  libgdk-pixbuf2.0-0 \
17
  libffi-dev \
18
  shared-mime-info \
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"]
 
1
+ # استفاده از نسخه سبک پایتون
2
  FROM python:3.9-slim
3
 
4
+ # تنظیم دایرکتوری کاری
5
+ WORKDIR /app
6
 
7
+ # نصب پیش‌نیازهای سیستمی برای WeasyPrint و زبان فارسی
8
+ # (این بخش حیاتی است تا PDF درست ساخته شود)
9
  RUN apt-get update && apt-get install -y \
10
  build-essential \
11
  python3-dev \
 
19
  libgdk-pixbuf2.0-0 \
20
  libffi-dev \
21
  shared-mime-info \
22
+ && apt-get clean \
23
+ && rm -rf /var/lib/apt/lists/*
24
 
25
+ # کپی کردن فایل نیازمندی‌ها و نصب آن‌ها
26
+ COPY requirements.txt .
27
+ RUN pip install --no-cache-dir -r requirements.txt
 
28
 
29
+ # کپی کردن بقیه فایل‌های پروژه (شامل app.py, فونت و templates)
30
+ COPY . .
31
 
32
+ # ساخت پوشه templates اگر کپی نشده باشد (محض اطمینان)
33
+ # و اطمینان از دسترسی نوشتن برای فایل‌های موقت
34
+ RUN chmod -R 777 /app
 
 
 
 
 
 
 
35
 
36
+ # هاگینگ فیس روی پورت 7860 کار می‌کند
37
  EXPOSE 7860
38
 
39
+ # دستور اجرای برنامه با استفاده از Gunicorn
40
  CMD ["gunicorn", "-b", "0.0.0.0:7860", "app:app"]