fixe ci
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

This commit is contained in:
Ehsan.Asadi
2025-12-31 04:40:25 +03:30
parent 7b78b67ec8
commit 75dc0b9a28
4 changed files with 129 additions and 60 deletions

51
docker/Dockerfile copy Normal file
View File

@@ -0,0 +1,51 @@
# استفاده از ایمیج پایه‌ای که قبلاً Push کردید
ARG BASE_IMAGE=hub.peikarband.ir/peikarband/landing:base
FROM ${BASE_IMAGE} AS builder
WORKDIR /app
# ۱. کپی کردن فایل‌های نیازمندی (برای استفاده از Cache)
COPY peikarband/requirements.txt .
RUN --mount=type=cache,target=/root/.cache/pip \
pip install --no-cache-dir -r requirements.txt
# ۲. کپی کردن کل کدها
# مهم: ساختار فولدر باید با app_name در rxconfig.py یکی باشد
COPY peikarband/ .
# ۳. تنظیم PYTHONPATH برای حل مشکل ModuleNotFoundError
ENV PYTHONPATH=/app
# ۴. اجرای Reflex Export
# این دستور خودش فرانت‌تند را بیلد می‌کند و نیازی به npm run build دستی نیست
RUN reflex init --loglevel debug
RUN reflex export --frontend-only --no-zip --loglevel debug
# ================= Stage 2: Runtime =================
FROM ${BASE_IMAGE} AS runtime
# ایجاد یوزر غیر ریشه برای امنیت
RUN groupadd -r peikarband && useradd -r -g peikarband -u 1000 -m peikarband
WORKDIR /app
# کپی کردن کتابخانه‌های نصب شده از مرحله قبل
COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages
COPY --from=builder /usr/local/bin /usr/local/bin
# کپی کردن کد اپلیکیشن و فایلهای بیلد شده فرانت‌تند
COPY --from=builder --chown=peikarband:peikarband /app /app
# ایجاد پوشه‌های مورد نیاز
RUN mkdir -p data logs uploaded_files && \
chown -R peikarband:peikarband /app && \
chmod -R 755 /app
ENV PYTHONUNBUFFERED=1 \
PYTHONPATH=/app \
NODE_ENV=production
USER peikarband
EXPOSE 3000 8000
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["reflex", "run", "--env", "prod"]