فصل دوم: ساخت ایمیج با Dockerfile

بهترین شیوه‌ها برای ایمیج‌های کوچک و امن

چند اصل برای Dockerfileهای بهتر

پس از یادگیری دستورات پایه، رعایت چند اصل باعث می‌شود ایمیج‌های شما سبک‌تر، امن‌تر و قابل‌نگهداری‌تر شوند. اول، همیشه از ایمیج‌های پایه‌ی سبک استفاده کنید؛ نسخه‌های slim یا alpine به‌جای نسخه‌ی کامل، حجم قابل‌توجهی کم می‌کنند:

FROM python:3.12-slim

دوم، هرگز از تگ latest در محیط production استفاده نکنید؛ همیشه یک نسخه‌ی مشخص قفل کنید تا build شما در آینده به‌طور غیرمنتظره تغییر نکند. سوم، از کاربر غیر-root داخل کانتینر استفاده کنید:

RUN useradd --create-home appuser
USER appuser

اجرای کانتینر با کاربر root ریسک امنیتی بالایی دارد؛ اگر مهاجمی از یک آسیب‌پذیری داخل برنامه سوءاستفاده کند، دسترسی root داخل کانتینر می‌تواند خطرناک‌تر باشد. چهارم، از فایل .dockerignore برای جلوگیری از کپی شدن فایل‌های غیرضروری (مثل .git، __pycache__، محیط مجازی) استفاده کنید، دقیقاً مشابه .gitignore:

.git
__pycache__/
*.pyc
venv/
.env

پنجم، دستورات RUN مرتبط را با && در یک خط ترکیب کنید تا لایه‌های کمتری ساخته شود و فضای اضافی پاک شود:

RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*

رعایت این اصول تفاوت زیادی بین یک image آماتور و یک image آماده‌ی production ایجاد می‌کند.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.