File size: 1,157 Bytes
d084d50
 
 
 
 
 
3a15254
0ca3497
d084d50
3a15254
 
41b9737
 
 
 
 
3a15254
 
 
d084d50
 
 
 
 
3a15254
 
 
0ca3497
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# --- مرحله اول: تالیف و سبک‌سازی کدهای فرانت‌اند با Node.js ---
FROM node:20-slim AS frontend-builder
WORKDIR /app
COPY package.json vite.config.ts tsconfig.json tailwind.config.js postcss.config.js index.html main.tsx App.tsx styles.css ./
RUN npm install
RUN npm run build

# --- مرحله دوم: اجرای وب‌سرور پایتونی Flask کنکور ---
FROM python:3.11-slim
WORKDIR /app

RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    libpq-dev \
    && rm -rf /var/lib/apt/lists/*

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# کپی اسکریپت‌های پایتون بک‌اند
COPY app.py ./

# کپی کردن پوشه کامپایل شده نهایی فرانت‌اند (dist) از لایه قبل به لایه جاری پایتون
COPY --from=frontend-builder /app/dist ./dist

EXPOSE 7860

# اجرای وب‌سرور با استفاده از Gunicorn برای اجرای استاندارد و پایدار برنامه فلاسک
CMD ["gunicorn", "--bind", "0.0.0.0:7860", "--workers", "2", "app:flask_app"]