چگونه محیط توسعه خود را با devcontainer.json استاندارد کنید
گردش کار توسعه نرم افزار مدرن پیچیده است و شامل ابزارها و وابستگی های زیادی است.
هنگام کار در یک تیم، استفاده از چندین برنامه نرم افزاری مختلف که هر کدام وابستگی های خاص خود را دارند، غیر معمول نیست. این می تواند به سرعت گیج کننده شود، زیرا هر نرم افزار به تنظیمات و مدیریت متفاوتی نیاز دارد.
یک راه حل استفاده از محیط های مجازی برای جداسازی وابستگی ها است. این ممکن است همچنان به نصب و مدیریت نصب و پیکربندی نیاز داشته باشد.
اما گزینه بهتر دیگری هم وجود دارد: بسته بندی همه چیز - از جمله پایگاه داده و نسخه زبان برنامه نویسی - در یک ظرف که می توانید هر زمان که به آن نیاز داشتید استفاده کنید. در واقع، اکثر شرکت ها منطق و کاربردهای خود را در ظروف تولیدی مستقر می کنند.
برای توسعه، می توانید از کانتینر Docker به عنوان یک محیط توسعه با امکانات کامل استفاده کنید. این شبیه به محیط تولید شما است، اما با تمام کامپایلرها، دیباگرها، ابزارهای ساخت، SDK ها، ابزارهای بهره وری و موارد دیگر. این ظرف توسعه یا کانتینر توسعه دهنده شما خواهد بود.
در اینجا devcontainer.json
به عنوان استانداردی است که محیط توسعه شما را ساده و استاندارد می کند. این به شما امکان میدهد تا به جای نگرانی در مورد وابستگیها و نصب، روی تغییرات حمل و نقل تمرکز کنید.
در این آموزش، با استاندارد devcontainer.json، هدف آن، نحوه پیکربندی و نحوه استفاده از آن برای استفاده شخصی یا تجاری آشنا خواهید شد. این به شما کمک می کند تا بهره وری خود را به عنوان یک مهندس افزایش دهید.
Dev Container چیست؟
کانتینرهای توسعهدهنده، که به عنوان کانتینرهای توسعه نیز شناخته میشوند، یک محیط توسعه کامل را در داخل یک کانتینر ارائه میدهند که میتوان به راحتی از طریق IDE دلخواه شما از طریق Secured Shell (SSH) به آن دسترسی داشت. این راهاندازی هرگونه مانعی را که از عملکرد کم تا پهنای باند کمتر، مانع گردش کار شما میشود را از بین میبرد.
کانتینر شما میتواند روی زیرساختهای مختلفی از جمله ابرهای خصوصی و عمومی، خوشهها یا ماشینهای محلی کار کند و میتوانید از سختافزاری استفاده کنید که تکثیر آن به تنهایی چالش برانگیز است.
جنبه انزوا همچنین تضمین می کند که وابستگی های شما با هم تداخل نداشته و محیط محلی شما را مختل نمی کند. تمام پیکربندی کانتینر در یک فایل استاندارد .devcontainer.json
از مایکروسافت ذخیره می شود که به عنوان دستورالعمل بسته بندی برای محیط شما عمل می کند.
این فایل از یک JSON ساختار یافته با فرمت فراداده نظرات (jsonc) استفاده می کند که می توانید آن را مطابق با نیازهای خاص خود تنظیم کنید. برای مثال، میتوانید ابزارهای توسعهدهنده مانند git، دیباگر و تنظیمات دیگر مانند برنامههای گفت نی مختلف را اضافه کنید.
کجا می توانید از آن استفاده کنید؟
ساده ترین راه اندازی می تواند ایجاد یک محیط کانتینر اولیه با زبانی برای آزمایش ویژگی های مختلف باشد. به عنوان مثال، اگر می خواهید نسخه جدیدی از یک زبان برنامه نویسی را آزمایش کنید، می توانید از تصویر پایه آن زبان خاص استفاده کنید و یک محیط توسعه جدید را به راحتی ایجاد کنید.
چند مورد استفاده برای تنظیمات پیچیده نیز وجود دارد. به عنوان مثال، یکی از دشوارترین کارها اغلب ایجاد و پیکربندی یک پایگاه داده برای کار یکپارچه با پروژه شما در حین تنظیم محیط توسعه دهنده است.
با ایجاد یک فایل کامپوزی Docker، می توانید به راحتی ایجاد پایگاه داده را پیکربندی کنید و متغیرهای محیط را برای ایجاد یک محیط مستقل در معرض دید قرار دهید. این تنظیمات چند کانتینر هماهنگ شده (هم با پایگاه داده و هم زبان برنامه نویسی) به عنوان یک رابطه والد-فرزند نصب می شوند و می توانند موارد استفاده پیچیده را ارائه دهند.
به پیکربندی زیر به عنوان مثال نگاه کنید که از Compose برای اتصال فضای ساخت استفاده می کند:
{ "name": "Python 3 & PostgreSQL", "dockerComposeFile": "docker-compose.yml", "service": "app", "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}" }
در این مثال، Dev Container شما از یک فایل Docker Compose استفاده میکند و به دستورالعملها برای ایجاد یک فضای کاری یکپارچه Python و PostgreSQL اشاره میکند. این ساختار می تواند به توسعه برنامه های کاربردی CRUD بدون تلاش برای پیکربندی پایگاه داده و پیکربندی سیستم شما برای پشتیبانی از آن در هر توسعه دهنده کمک کند.
مشکلات حل ظروف توسعه دهنده
اکنون با آپشن های ی مانند این، کانتینرهای توسعهدهنده در تنظیمات شخصی و تجاری محبوبیت پیدا میکنند، زیرا قابلیت تکرار و انزوا را ارائه میدهند. بیایید نگاهی به تمام مزایا بیندازیم:
رسیدگی به مشکلات پیکربندی راه اندازی
نگهداری و مدیریت محیط های محلی می تواند کار زیادی باشد. اغلب شامل استفاده از ابزارها و پیکربندی های مختلف است که فرآیند را دست و پا گیر می کند. داشتن چیزی که این فرآیند را استاندارد می کند، می تواند در زمان زیادی صرفه جویی کند.
استاندارد سازی دستورالعمل های ساخت پروژه
نوشتن اسناد برای ارتقاء وابستگی و تغییرات می تواند چالش برانگیز باشد. یک رویکرد بهتر، استفاده از کد برای سادهسازی فرآیند است و به هر کسی اجازه میدهد بدون گرفتار شدن در مستندات یا «در دستگاه من کار میکند» ارسال کند.
تضمین جداسازی محیط های توسعه
یک توسعهدهنده نرمافزار میتواند به طور همزمان روی پروژههای مختلف با قطعات متحرک زیادی کار کند. اگر بتوانید محیط ها را ایزوله کنید، از درگیری با نرم افزارهای دیگر در سیستم میزبان جلوگیری کنید و یک محیط تمیز و کنترل شده برای توسعه فراهم کنید؟ اکنون امکان پذیر است :)
ایجاد ثبات در بین تیم های توسعه
دستیابی به قابلیت حمل در بین تیم ها و افراد متعدد با فناوری و پیکربندی های متنوع پیچیده است. یک محیط توسعه استاندارد شده ممکن است تضمین کند که همه اعضای تیم دارای یک پیکربندی یکنواخت هستند و در عین حال تناقضات ناشی از واریانس های ماشینی را کاهش می دهد.
ساده سازی فرآیندهای نصب و آموزش
یادگیری چیزهای جدید مهم است، اما می تواند چالش برانگیز باشد. پس چه راهی برای یادگیری بهتر از تمرین یک زبان یا چارچوب جدید؟ راه اندازی سریع محیط ها در انزوا می تواند به تمیز نگه داشتن ماشین ها کمک کند.
این امر به ویژه هنگام ارائه سخنرانی یا برگزاری کارگاه ها صادق است. با شروع با یک لوح تمیز، همه می توانند بدون گرفتار شدن در ابزارهای از دست رفته یا سردرگمی در میانه مرحله، آن را دنبال کنند.
چگونه اولین Devcontainer خود را بسازید
اکنون که همه مزایا را می دانید، من به شما کمک می کنم اولین ظرف توسعه خود را ایجاد کنید. از آنجایی که این یک آموزش مقدماتی است، شما یاد خواهید گرفت که چگونه این کار را برای یک محیط Go اولیه انجام دهید.
هنگامی که اصول اولیه را درک کردید، می توانید تنظیمات خود را گسترش دهید تا پیکربندی های پیچیده تری را که شامل پایگاه های داده، ابزارهای توسعه دهنده اضافی و سفارشی سازی می شود، در بر بگیرد. بیایید با ایجاد یکی شروع کنیم!
پیش نیازها
پیش نیازهای ایجاد قالب در اینجا آمده است:
ابزارهایی برای اجرای Dev Container: Docker یا هر موتور کانتینری دیگری
ابزارهایی برای ایجاد قالب و اتصال به Dev Container: Visual Studio Code
ابزارهایی برای مدیریت اتصال و منطق ایجاد: پسوند Visual Studio Code Dev Containers
توجه: پس از ایجاد الگو، همانطور که در بخشهای آینده خواهیم دید، میتوانید با باطنهای مختلف به IDE دلخواه خود بروید. فقط فایل .devcontainer.json
را به عنوان منبع حقیقت برای محیط زیست در نظر بگیرید و به راحتی قابل اشتراک گذاری باشد.
چگونه یک کانتینر برنامه نویس ساده بسازیم
می توانید ظرف توسعه دهنده را از ابتدا ایجاد کنید یا از ابزار VSCode استفاده کنید. شروع با ابزار ساده است. برای راهاندازی کانتینر برنامهنویس خود، فقط از گزینه Dev Containers: Add Dev Container Configuration Files…
از پالت Command (Ctrl+Shift+P)
استفاده کنید:
حالا بیایید به مرحله بعدی یعنی انتخاب تصویر پایه برویم. شما می توانید هر تصویر پایه ای را که دوست دارید انتخاب کنید. در این مورد، ما از تصویر پایه Go استفاده می کنیم.
با این حال، میتواند نسخههای زیادی از Go وجود داشته باشد – پس قدم بعدی این است که نسخهای را که میخواهید انتخاب کنید. آخرین نسخه موجود ۱.۲۱
است، پس توصیه می کنم از آن استفاده کنید. اما اگر ترجیح می دهید، می توانید یک تصویر از ابتدا بسازید یا حتی از نسخه های قدیمی تر انتخاب کنید.
فقط به پایین بروید و انتخاب کنید.
گام بعدی این است که «ویژگیها» را وارد کنید، که واحدهای کد نصب مستقلی هستند که به القای ابزارها یا ظروف خاصی در پیکربندی کانتینر برنامهنویس شما کمک میکنند. این ویژگیها میتوانند از ابزارهای جدید تا سفارشیسازیهای خاص متغیر باشند که میتوانید در اینجا بیشتر درباره آنها بیاموزید.
اما برای یک محیط ساده و ساده Go، از این مرحله می گذریم.
روی Ok
کلیک کنید تا یک فایل Go .devcontainer.json
اصلی در پوشه .devcontainer
ایجاد شود:
~/Code/devcontainer-new main +4 !4 ❯ tree -a . ├── .devcontainer │ └── devcontainer.json
تبریک میگم اکنون محیطی دارید که ایزوله است و می توان آن را با هر کسی به اشتراک گذاشت.
نحوه استفاده از VSCode برای تنظیم کانتینر توسعه دهنده
برای اجرای این پیکربندی، میتوانید به سادهترین روشی که در زیر مشاهده میکنید، روی Reopen in Container
کلیک کنید:
برنامه گفت نی تصویر " mcr.microsoft.com/devcontainers/go:1-1.21-bullseye " را می کشد و سپس یک سرور SSH در آن ایجاد می کند.
پس از ساخت موفقیت آمیز نسخه Go، می توانید با اطمینان SSH وارد محیط کنید و عملیات خود را اجرا کنید. خواهید دید که نسخه Go همان نسخه ای است که ساخته اید و اتصال از Dev Container شما می آید که باعث موفقیت اتصال می شود:
Dev Container CLI
Devcontainers CLI یک رابط خط فرمان است که به شما کمک می کند کانتینر را از پیکربندی devcontainer خود اجرا، بسازید و اجرا کنید.
با کمک این ابزار می توانید محیطی را بدون استفاده از VSCode راه اندازی کنید و سپس از طریق SSH به صورت دستی به آن متصل شوید و آزادی بیشتری در اختیار شما قرار دهد.
اگرچه این ابزار جالب است، اما بسیاری از ویژگیها هنوز راهاندازی نشدهاند که در اینجا فهرست شده است:
نحوه استفاده از Dev Containers برای داشتن پتانسیل کامل
هنگامی که devcontainer.json
را بین هم تیمی های خود توزیع کردید، آنها به راحتی می توانند از آن برای راه اندازی محیط های محلی با مزایای مورد بحث استفاده کنند. اما اگر نیاز به کمک به آنها برای راه اندازی محیط روی Cloud برای استفاده از سخت افزار قدرتمند آن داشته باشید، چه؟
چند گزینه وجود دارد که می تواند به شما کمک کند. اولین مورد GitHub Codespaces است که به شما کمک می کند زیرساخت های مدیریت شده توسط GitHub در Azure را راه اندازی کنید.
اما ممکن است نیاز به استفاده از سخت افزار اختصاصی از خوشه Kubernetes یا ابر خصوصی یا عمومی وجود داشته باشد. چگونه آن را انجام دهید؟ می توانید از ابزارهای سمت کلاینت منبع باز مانند DevPod استفاده کنید که به شما کمک می کند در زیرساخت مورد نظر خود مستقر شوید.
در حال حاضر، این ابزار دارای بیش از ۴.۴k ستاره است و هر روز با کشش بیشتر به سرعت در حال رشد است و با شعار « دادن قدرت به کاربر» است. هر Infra، هر IDE، و Unopinionated `:
این ابزار نامعلوم است، به این معنی که میتوانید از آن در زیرساختها، IDEها و زبانهای برنامهنویسی مختلف استفاده کنید.
برای مثال، اگر میخواهید یک Backend خاص در یک ارائهدهنده ابری داشته باشید، میتوانید آن را با ارائهدهندگانی که از قبل در دسترس هستند انجام دهید، یا میتوانید خودتان را مانند ۷ ارائهدهنده انجمن ایجاد کنید :
این ابزار همچنین اجازه می دهد تا یک محیط توسعه سازگار را ایجاد کنید که می توان به طور مکرر به آن در هر جایی که می خواهید اعتماد کرد و به هر ویرایشگر کد/IDE اعم از JetBrains، Jupyter یا VSCode متصل شد.
چگونه محیط توسعه خود را با استفاده از DevPod راه اندازی کنید
این ابزار هم نسخه دسکتاپ و هم نسخه CLI را ارائه می دهد، پس می توانید از هر کدام که مناسب تر است استفاده کنید. هنگام استفاده از DevPod Desktop برای ایجاد یک محیط، فرآیند به شرح زیر است:
مرحله ۱: DevPod را از دستورالعمل های رسمی نصب کنید.
مرحله ۲: یک ارائه دهنده را از طریق «Providers» > «+ Add» اضافه کنید. یک ارائه دهنده را انتخاب کنید و "ادامه" را انتخاب کنید.
مرحله ۳: با مسیر devcontainer.json
خود Enter Workspace Source
که می تواند یک مخزن راه دور یا محلی یا نمونه باشد:
مرحله ۴: IDE پیش فرض خود را انتخاب کنید و روی Create Workspace
کلیک کنید:
اکنون، می توانید برنامه خود را بر روی نمونه در حال اجرا خود بسازید و پیکربندی کنید:
تبریک می گویم! شما با موفقیت اولین Dev Container خود را راه اندازی کردید 🎉
اگر احساس ماجراجویی میکنید و میخواهید CLI را کشف کنید، میتوانید در اینجا درباره نحوه استفاده از آن اطلاعات بیشتری کسب کنید.
افکار نهایی
استانداردهایی مانند ظروف توسعهدهنده به شما کمک میکنند بهرهوری و اکوسیستم توسعه کلی خود را بهبود ببخشید. این امر هزینههای شرکتها را کاهش میدهد، زیرا میتوان آخرین سختافزار را بدون نیاز به کل تیم برای ارتقای ماشینهای محلی خود هر دو سال یک بار تهیه کرد.
همچنین به شما کمک می کند تا بدون زحمت اعضای تیم جدید را وارد کنید و تجربه کاربری ثابتی داشته باشید.
ابزارهای کانتینر توسعه مانند DevPod میتوانند امنیت و سفارشیسازی را برای برآوردن نیازهای مختلف در هر زیرساختی که میخواهید و در عین حال یک DevEx سازگار را حفظ کنند، بهبود بخشند. این امکان ساخت و آزمایش سریعتر با استفاده از آخرین سختافزار را فراهم میکند و زمان نصب را با زمان کدنویسی جایگزین میکند.
ارسال نظر