fix dockerfile

This commit is contained in:
javad committed 2026-06-16 11:33:28 +03:30
1 parent 79d165a5df
commit 412fe24bd7
1 file changed
+10 -11
+10 -11
View File
@@ -8,7 +8,7 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
WORKDIR /app WORKDIR /app
# استفاده از کش سیستم‌عامل برای apt # بهینه‌سازی ۱: استفاده از کش سیستم‌عامل برای apt
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \
apt-get update && apt-get install -y --no-install-recommends \ apt-get update && apt-get install -y --no-install-recommends \
@@ -20,7 +20,7 @@ ENV PATH="/opt/venv/bin:$PATH"
COPY requirements.txt . COPY requirements.txt .
# استفاده از مکانیزم کش BuildKit برای pip # بهینه‌سازی ۲: استفاده از مکانیزم کش BuildKit برای pip
RUN --mount=type=cache,target=/root/.cache/pip \ RUN --mount=type=cache,target=/root/.cache/pip \
pip install --default-timeout=1000 -i https://package-mirror.liara.ir/repository/pypi/simple -r requirements.txt pip install --default-timeout=1000 -i https://package-mirror.liara.ir/repository/pypi/simple -r requirements.txt
@@ -35,10 +35,10 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
WORKDIR /app WORKDIR /app
# ساخت کاربر سیستم غیر ریشه در بالاترین بخش ممکن برای حفظ کش # بهینه‌سازی ۳: ساخت کاربر سیستم غیر ریشه در بالاترین بخش برای حفظ کِش داکر
RUN useradd -m -u 1000 django RUN useradd -m -u 1000 django
# استفاده از کش apt و ساخت دایرکتوری‌های مورد نیاز به صورت یکپارچه # بهینه‌سازی ۴: استفاده از کش apt و ساخت دایرکتوری‌ها به صورت یکپارچه
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \
apt-get update && apt-get install -y --no-install-recommends \ apt-get update && apt-get install -y --no-install-recommends \
@@ -47,17 +47,16 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
mkdir -p /app/staticfiles /app/mediafiles /etc/supervisor /var/log/supervisor && \ mkdir -p /app/staticfiles /app/mediafiles /etc/supervisor /var/log/supervisor && \
chown -R django:django /app /etc/supervisor /var/log/supervisor chown -R django:django /app /etc/supervisor /var/log/supervisor
# کپی کردن و واگذاری مالکیت لایه پاکیزه پکیج‌ها به کاربر django # کپی کردن و واگذاری مالکیت محیط مجازی به کاربر django (رفع باگ پنهان دسترسی)
COPY --from=builder --chown=django:django /opt/venv /opt/venv COPY --from=builder --chown=django:django /opt/venv /opt/venv
# بهینه‌سازی: کپی جداگانه اینتری‌پوینت برای خراب نشدن کش در تغییرات بعدی کد # کپی کردن تمام کدهای پروژه با مالکیت کاربر محدود شده
COPY --chown=django:django entrypoint.sh /app/entrypoint.sh
RUN chmod +x /app/entrypoint.sh
# کپی کردن کدهای پروژه با مالکیت کاربر محدود شده
COPY --chown=django:django . . COPY --chown=django:django . .
# سوئیچ به کاربر غیر ریشه # حل مشکل خطای Permission Denied (اجرایی کردن اسکریپت دقیقاً بعد از کپی شدن فایل‌ها)
RUN chmod +x /app/entrypoint.sh
# سوئیچ به کاربر غیر ریشه برای امنیت پروداکشن
USER django USER django
# اکسپوز پورت وب‌سرور برای وب‌پروکسی Coolify # اکسپوز پورت وب‌سرور برای وب‌پروکسی Coolify