الان داشتم یه فروم رو نگاه میکردم؛ رسیدم به یه پستی که یارو نوشته بود:
Explain to me like i'm 5, Why I should use Docker?
یه چند نفری جواب داده بودن که مهم نیست. از جوابها بگذریم. چیزی که با خوندن این سوال یادم افتاد رو میخوام بگم.
اولین باری که رفتم رو یه پروژه درست حسابی کار کنم، یه شرکتی بود با یه تیم تقریبا ۱۰ نفره. یه مدیر پروژه داشتیم که به ما تسک (Task) میداد و خیلی از چیزا رو مثلا روشن میکرد. بعد از یه هفته که با بچههای تیم، ماهیت کار و اهداف پروژه آشنا شدیم بهمون گفتن اولین تسک اینه که «به عنوان یک developer باید بخشی از پروژه رو روی سیستم خودتون یا فلان سرور بالا بیارین». ما هم گفتیم بسیار عالی.
بچهها شروع کردن ران کردن پروژه. هر کسی رو لپتاپ خودش dependency نصب میکرد. کانفیگ میکرد. دیتابیس ایمپورت میکرد و خلاصه کلی کارای دیگه. من یکم عقبتر بودم چون همزمان به یه مشکل مربوط به DNS سرویسها و سرویسدهنده CDN خورده بودیم.
خلاصه وقتی کار من تموم شد رفتم پیش بقیه بچهها گفتم شما تونستین تسک۱ رو انجام بدین؟ «گفتن آره ولی از چندین ناحیه پاره شدیم.» هر کدومشونم به یه مشکل متفاوت بر خوردن. یکی نمیتونست فرانت رو بالا بیاره، اون یکی نمیتونست دیتابیس رو ایمپورت کنه.
منم رفتم خونه تسک ۱ رو انجام بدم. شاید ۲ ۳ روز درگیر این بودم. هر چند ساعت زنگ میزدم به بچههای تیم. میگفتم فلان اررور رو چیکار کردی؟ دو ساعت دیگه دوباره زنگ میزدم میگفتم بهمان مشکل رو چیکار کردی؟ و اینجوری بود که منم روی همون مسیر قهوهای راه رفتم که اونا رفتن!
زبان کوتاه کنم! اگه اون روزا میدونستم داکر چیه و میتونستم واسه یه بچهی ۵ ساله توضیح بدم داکر به چه درد میخوره، اون مشکل رو فقط یک بار حل میکردم.
یکی از راه حلهاش این بود به جای اینکه یه کار احمقانه رو روی ۵ تا هاست انجام بدیم، همون کار احمقانه رو روی یک هاست انجام میدادیم و واسه بقیه build میکردیم. به همین راحتی :)