Files
peikarband/docker/Dockerfile copy
Ehsan.Asadi 75dc0b9a28
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
fixe ci
2025-12-31 04:40:25 +03:30

51 lines
1.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# استفاده از ایمیج پایه‌ای که قبلاً 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"]