چند نکته جالب برای بهینه کردن داکرفایل Dockerfile – قسمت اول

چند نکته جالب برای بهینه کردن داکرفایل Dockerfile – قسمت اول

سلام. امروز میخوایم یکم راجب نکاتی که ممکنه زیاد باهاش توی داکرفایل بر بخورین صحبت کنیم. نکاتی که اراعه میدم ممکنه ۱۰۰ درصد دقیق نباشه اما تلاش من بر این هست که حداکثر دقت رو داشته باشه. همچنین یادآوری میکنم که برای درک این نکات لازمه که دانش حداقلی با داکر و داکرفایل داشته باشید.از دوستان آگاه در زمینه داکر خواهش میکنم در صورت مشاهده هر اشتباهی در نظرات ما رو باخبر کنن.حالا بریم سر اصل مطلب:وقتی در داکر فایل با دستور FROM میخوایم نام ایمیج رو مشخص کنیم بهتره که ورژن ایمیج مورد نظر رو وارد کنیم. معمولا خیلی از ماها از دستور latest استفاده میکنیم که ممکنه در آینده با ورژن های جدیدتر اون ایمیج به مشکل بخوره. پس وارد کردن ورژن دقیق ایمیج مهم هست که مطمعن بشیم در آینده کاربران آن به ارور نخورن.گاهی اوقات برای استفاده از یک برنامه خاص میشه از چند روش استفاده اش کرد. به طور مثال در تصویر زیر میبینید که پکیج openjdk رو اومده داخل ایمیج debian دانلود و نصب کرده. در صورتی که اگر در داکرهاب جستجو کنیم ایمیج رسمی openjdk هست و نیازی به کد های اضافی نیستشگاهی اوقات در ایمیج های رسمی ورژن های مینیمال شده و کم حجم شده وجود داره که فقط کافیه در هنگام اجرای دستور FROM ورژن درست رو وارد کنیم. با این کار بیخودی حجم پکیج بالا نمیره.در داکرفایل میتونید چندین FROM را اجرا کنید و برای هر کدام یک نام مشخص تعیین کنیداگر به تصویر دقت کنید در مرحله دوم FROM که openjdk رو فراخوانی میکنه از دستور COPY استفاده کرده و یک پارامتر با نام –from استفاده کرده. با این پارامتر میگیم که محتوای مرحله قبلی که نامش رو builder گذاشته بودیم رو به عنوان مبنا قرار بدهدر قسمت های بالا گفتیم که میتونیم در یک داکرفایل چندین استیج یا همان FROM استفاده کنیم و برای هر کدام یک نام خاص تعیین کنیم. نکته جالب اش اینجاست که میتونیم در هنگام اجرای دستور docker build نام یک استیج خاص رو وارد کنیم که فقط همون اجرا بشه.گاهی اوقات ما داکرفایل رو قبلا اجرا کردیم و بعدا میخوایم فقط قسمت خاصی از پروژه که ویرایش شده اپدیت بشه. اینجا این دستور به کار میاد.خب من ازین بیشتر خسته اتون نمیکنم در قسمت دوم با نکات بیشتری ادامه میدیم 🙂

Author: admin

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *