پست‌ها

نمایش پست‌ها از 2022

ساختن ایمیج های داکری به کمک BuildKit - بخش دوم

تصویر
 خب با یک فاصله طولانی از بخش اول میرسیم به بخش دوم ساختن ایمیج های داکری به کمک BuildKit در این قسمت قراره درباره امنیت و در واقع امن کردن داکرفایل یا ایمج هامون صحبت کنیم.وقتی که نیاز داریم مثلا به یک مخزن خصوصی وصل بشیم یا یک فایل رو از یک سایت خاص💪 مثلا sonaops.ir دانلود کنیم یا ... و مجبوریم یک سری اطلاعات شخصی (نام کاربری رمز عبور و...) رو وارد کنیم در صورت رعایت نکردن یکسری اصول امنیتی ایمیج ما مستعد خرابکاری میشه و...  تا قبل از BuildKit یک روش استفاده از ARG داخل داکر فایل و مقداردهی اون هنگام build به کمک build-arg بود (و هست) مشکل این روش اینه که از طریق خواندن تاریخچه ساخت یک ایمیج این اطلاعات درز میکنه و البته از اون بدتر اگه این اطلاعات رو به نوعی داخل ایمیج ذخیره کرده باشید به راحتی قابل دسترسی هست (حتی اگه تو یک مرحله اونو پاک کرده باشید) سرچ زیر تو گوگل احتمالا نتیجه های جالبی رو برگردونه inurl:Dockerfile site:github.com intext:"ARG password" OR intext:"ARG secret" OR intext:"ARG pass" و در ادامه در صورت دستیابی به ایمیج مربوطه docker h...

ساختن ایمیج های داکری به کمک BuildKit - بخش اول

تصویر
خب چند سالی هست که داکر راه خوبان رو داره میره و با تعریف پروژه موبی قدم بزرگی تو پشرفت کانتینر سازی (که البته به اشتباه معمولا میگیم داکر سازی و چه اشتباه خوبی ) برداشته.     یکی از زیر پروژه های موبی که اتفاقا بحث اصلی این پست و پست های آتی هست BuildKit نام داره که در واقع ابزاری برای ساخت ایمیج هست که در ابتدا به صورت مجزا قابل استفاده بود(و البته هنوزم هست) و از داکر ورژن 18.09 به صورت داخلی به داکر اضافه شده.   برای استفاده از این بیلدر یا میتونیم متغییر محیطی بنام DOCKER_BUILDKIT رو مقدار دهی کنیم و یا daemon.json رو ویرایش کنیم  export DOCKER_BUILDKIT=1 OR  vi /etc/docker/daemon.json   { "features" : { "buildkit" : true } }  systemctl daemon-reload systemctl restart docker       بعد از تغییر بیلدر پیش فرض داکر خروجی بیلدر هنگام ساخت ایمیج به شکل زیر میشه   نکته : من برای راحتی برای دستور docker دگرنام( alias ) dcr رو انتخاب کردم. در این پست و پست های آتی به برسی قابلیت های مهم BuildKit میپردازیم   پردازش موازی شا...

برسی استاندارد های Branching Model در گیت

تصویر
Git flow   به طور خلاصه  در این استاندارد قابلیت های جدید تحت شاخه های feature در شاخه develop ادغام میشوند.  در زمان رسیدن به زمان انتشار نسخه (چه از بعد تعداد قابلیت جدید یا زمان ) شاخه release ی از شاخه develop شده و اماده تست uat میشود.  شاخه master همیشه شامل نسخه لایو میباشد.  درصورت وجود باگ در نسخه لایو شاخه hotfix ی از master ساخته شده و در نهایت در شاخه master و develop ادغام میشود.      مزایا     اطمینان از تمیز بودن هر شاخه در طول عمر هر پروژه به واسطه تفکیک زیاد شاخه ها از هم نام گذاری قابل فهم شاخه ها پشتیبانی قوی در ابزارهای git  مناسب برای زمانی که میخواهیم چندین ورژن از محصول در محیط لایو یا عملیاتی داشته باشیم   معایب   تاریخچه کامیت های گیت خوانا نمیباشد جداسازی شاخه master و develop بنوعی اضافه تلقی میشود و باعث سخت شدن پروسه ها ci/cd میشود برای داشتن تنها یک نسخه در محیط لایو یا عملیات توصیه نمیشود   Github flow    ساده ترین استاندارد میباشد و به طور خلاصه در این استاندارد قابلیت ه...

یک اسفند دو صفر شروعی دوباره

خب مثل یک چشم بهم زدن ۱۰ سال گذشت ۱۰ فروردین سال ۱۳۹۱ آخرین پست من در این وبلاگ که از SQL server 2012 نوشتم...  زندگی شغلی من هم تو این مدت دستخوش تغییر شد و از دنیای مایکروسافت به دنیای لینوکس ورود کردم از برنامه نویسی c# و سروکله زدن با SQL server تا کلی تجربه و چالش جدید با لینوکس و اوراکل و رسیدن به DevOps.  از سال ۸۷ که زندگی شغلی من تو حوزه IT شروع شد (بعنوان پشتیبان سیستم) همیشه با کارهای تکراری و به اصطلاح گل :) مشکل داشتم و سعی میکردم تا حد ممکن تسک های که سمت من میومد رو خودکار کنم با ابزارهای مثل autoit کار میکردم اسکریپت می‌نوشتم و...  من عاشق کامپیوتر و طبعا کارهام بودم ولی DevOps یک خون تازه ی تو زندگی شغلی من به جریآن انداخت و به نوعی نیمه گمشده من بود. تصمیم گرفتم حال خوبم مخصوصا تو چند سال اخیر رو که به واسطه DevOps بوده با نوشتن بهتر کنم و البته تجربیات م رو با شما به اشتراک بگذارم و هم یاد بدم و هم یاد بگیرم. برای ادامه تصمیم گرفتم اسم وبلاگ رو عوض کنم به SonaOps و اما SonaOps یعنی چه ؟ تکلیف قسمت دوم که مشخصه اسم وبلاگ منم میشه یکی از چند ده نامی که...