# --- مرحله اول: تالیف و سبک‌سازی کدهای فرانت‌اند با 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"]