danicor commited on
Commit
73ffdd5
·
verified ·
1 Parent(s): 1c7889a

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +14 -24
Dockerfile CHANGED
@@ -1,16 +1,10 @@
1
  FROM python:3.9-slim
2
 
3
- # جلوگیری از بافر شدن لاگ‌ها
4
- ENV PYTHONUNBUFFERED=1 \
5
- PIP_NO_CACHE_DIR=1 \
6
- HF_HOME=/data/.huggingface
7
-
8
- # دایرکتوری کاری
9
  WORKDIR /app
10
 
11
- # نصب وابستگی‌های سیستمی + curl (برای healthcheck)
12
  RUN apt-get update && apt-get install -y \
13
- curl \
14
  libgl1 \
15
  libglib2.0-0 \
16
  libsm6 \
@@ -18,29 +12,25 @@ RUN apt-get update && apt-get install -y \
18
  libxrender-dev \
19
  && rm -rf /var/lib/apt/lists/*
20
 
21
- # کپی requirements قبل از کد (برای cache بهتر)
22
  COPY requirements.txt .
23
 
24
- # نصب وابستگی‌های پایتون
25
- RUN pip install --upgrade pip \
26
- && pip install -r requirements.txt
27
 
28
- # کپی کل کد
29
  COPY . .
30
 
31
- # ساخت کاربر غیر root
32
- RUN useradd -m -u 1000 worker \
33
- && mkdir -p /data \
34
- && chown -R worker:worker /app /data
35
-
36
  USER worker
37
 
38
- # پورت استاندارد HF
39
  EXPOSE 7860
40
 
41
- # Healthcheck سازگار با HuggingFace
42
- HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
43
- CMD curl -fs http://127.0.0.1:7860/health || exit 1
44
 
45
- # اجرای اپ
46
- CMD ["python", "app.py"]
 
1
  FROM python:3.9-slim
2
 
3
+ # Set working directory
 
 
 
 
 
4
  WORKDIR /app
5
 
6
+ # Install system dependencies
7
  RUN apt-get update && apt-get install -y \
 
8
  libgl1 \
9
  libglib2.0-0 \
10
  libsm6 \
 
12
  libxrender-dev \
13
  && rm -rf /var/lib/apt/lists/*
14
 
15
+ # Copy requirements first for better caching
16
  COPY requirements.txt .
17
 
18
+ # Install Python dependencies
19
+ RUN pip install --no-cache-dir -r requirements.txt
 
20
 
21
+ # Copy application code
22
  COPY . .
23
 
24
+ # Create non-root user
25
+ RUN useradd -m -u 1000 worker
 
 
 
26
  USER worker
27
 
28
+ # Expose port
29
  EXPOSE 7860
30
 
31
+ # Health check
32
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
33
+ CMD curl -f http://localhost:7860/health || exit 1
34
 
35
+ # Run the application
36
+ CMD ["python", "app.py"]