مهران مطیعی
مهران مطیعی
خواندن ۳ دقیقه·۵ سال پیش

ریاکت برای غارنشینان 11 (docker)

قشنگ ترین قسمت کد نویسی بزای من اونجاست که ببینم کدی که نوشتم همه جا مثل کامپیوتر خودم بی نقص اجرا میشه .یه زمانی این مثل رویا بود ولی ما الان به لطف گو داکر رو داریم.بریم که پروژه مون رو داکرایز کنیم.

داکر اینجوری کار میکنه که شما باید از پروژه تون یه فایل ایمیج بسازین . یه چیزی توو مایه های فایل iso یی که برای سیستم عامل ها داشتیم و هر جا که داکر باشه میشه اون فایل ایمیج رو درست همونجوری که روی سیستم خودتون اجرا میشد اجرا کرد.

فایل ایمیج شامل همه ی فایل هاییه که برای اجرای پروژه تون لازمه ..برای نمونه ی ما این فایل شامل node,npm, همه ی پکیج های استفاده شده در پروژه و ... هست که با توجه به نوع پروژه حجم فایل ایمیج هی بزرگ میشه ..یه سری ایمیج های آماده وجود داره که ما برای ساخت ایمیج های خودمون از اون ها استفاده میکنیم .مثلا ایمیج node یا ایمیج پایتون ... شما میتونین این ایمیج هارو از اینجا ببینین. برای هر برنامه ای یه عالمه ایمیج با کانفیک ها و ورژن های متنوع موجوده که بسته به نیاز باید ایمیج مناسب خودتون رو پیدا کنین . مثلا ممکنه یکی برای اجرای پایتون بیاد و از ایمیج یک سیستم عامل اوبونتو کامل استفاده کنه و حجم ایمیجش بشه یه گیگ ..یکی دیگه هم از یه ایمیج خلاصه استفاده کنه و کلا با 50 مگ داستانو ببنده .

ایمیج هایی که من برای پروژه های nextjs خودم دیدم حدود 150 تا 200 مگ بودن.

خب .. و اما ایمیج رو چطور بسازیم؟

داکر برای ساخت فایل های ایمیج از فایلی به نام Dockerfile استفاده میکنه .این فایل فقط شامل چند خط دستوره و حجمش یکی دو کیلوبایته.توی این فایل تعریف میکنیم که پروژه مون به چیا نیاز داره و چطور باید چیکار کنه

ساخت Dockerfile برای پروژه nextjs

وقتی کدش رو ببینین میفهمین که چه ساده ست ...ما اول میگردیم و یه فایل ایمیج مناسب برای اجرای node پیدا میکنیم. یادتون باشه که نیاز نیست دانلودش کنین , ما فقط اسمش رو میخوایم . همه ی اسم هایی که اینجا میبینین قابل استفاده هستن . من از mhart/alpine-node میخوام استفاده کنم . داکرفایلمون این شکلی میشه

اول اومدم و گفتم که بیا و از ایمیج mhart/alpine-node استفاده کن. وقتی از این ایمیج استفاده میکنم یعنی node, npm و... نصبه . میگم که برو توی پوشه ی app .حالا هرچی فایل توی روت پروژه ی من هست رو کپی کن توی پوشه ی app .دستور npm run install رو اجرا کن تا پکیج ها نصب بشن .بعدش بیا برو روو حالت پروداکشن و. برنامه رو بیلد کن . اجازه دسترسی به پورت 3000 رو بده و در نهایت node server.js رو اجرا کن.

خب خیلی ساده بود. اگه دقت کنین من اول پکیج هارو نصب کردم و بعد اومدم حالت پروداکشن رو فعال کردم .پس الان پکیج های حالت dev هم نصب شده . اگه نیازی بهشون ندارین میتونین اون خط رو ببرید بالاتر

خب ما داکرفایل هم ساختیم حالا چجوری از این برسیم به ایمیج؟ و اصلا با اون ایمیج چیکار کنیم؟

شما دیگه لازمه که داکر رو نصب کنین.برید توو این سایت دانلود و نصبش کنین.

برای ساخت ایمیج کافیه وقتی توی روت پروژه هستین این دستور رو توی ترمینال بزنین.با این کار فایل های لازم رو دانلود و اجرا میکنه.شما به یه فضایی لازم دارین که فایل های ایمیج رو نگه داری کنه که اصطلاحا بهش رجیستری میگن وقتی داخل داکر لاگین میکنین براتون یه چی میسازه و همه چی رواله ..حالا بعدا میریم روو گیت لب و اونجا قشنگ تر جا میافته این چیزا..فعلا هدف آشنایی و ساخت dockerfile بود.

docker build --rm -f &quotDockerFile&quot -t imagename:latest .

بار اول شاید یه کم طول بکشه .ولی بیلد های بعدی خیلی سریع اتفاق میافته و همه چیز رو کش میکنه.

فکر کنم ایده ی بدی نباشه این رو روی فندوق هم دیپلوی کنیم .جلو تر میرسیم بهش..دلم میخواد کد بزنم ..چرا کانفیگ تموم نمیشه؟

کد ها اینجاست

https://github.com/straxico/react-strix


اندک نویس | چاینده در باد | هویج پرست |لواشک باز | شب گام | خِرَدسوده | رقاصِ بازار های قرمز | مجنونِ بی لیلی | نخورده ی همیشه مست | port 3000 | estp
شاید از این پست‌ها خوشتان بیاید