متن خبر

چگونه محیط توسعه خود را با devcontainer.json استاندارد کنید

چگونه محیط توسعه خود را با devcontainer.json استاندارد کنید

شناسهٔ خبر: 440845 -




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

هنگام کار در یک تیم، استفاده از چندین برنامه نرم افزاری مختلف که هر کدام وابستگی های خاص خود را دارند، غیر معمول نیست. این می تواند به سرعت گیج کننده شود، زیرا هر نرم افزار به تنظیمات و مدیریت متفاوتی نیاز دارد.

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

اما گزینه بهتر دیگری هم وجود دارد: بسته بندی همه چیز - از جمله پایگاه داده و نسخه زبان برنامه نویسی - در یک ظرف که می توانید هر زمان که به آن نیاز داشتید استفاده کنید. در واقع، اکثر شرکت ها منطق و کاربردهای خود را در ظروف تولیدی مستقر می کنند.

برای توسعه، می توانید از کانتینر Docker به عنوان یک محیط توسعه با امکانات کامل استفاده کنید. این شبیه به محیط تولید شما است، اما با تمام کامپایلرها، دیباگرها، ابزارهای ساخت، SDK ها، ابزارهای بهره وری و موارد دیگر. این ظرف توسعه یا کانتینر توسعه دهنده شما خواهد بود.

در اینجا devcontainer.json به عنوان استانداردی است که محیط توسعه شما را ساده و استاندارد می کند. این به شما امکان می‌دهد تا به جای نگرانی در مورد وابستگی‌ها و نصب، روی تغییرات حمل و نقل تمرکز کنید.

در این آموزش، با استاندارد devcontainer.json، هدف آن، نحوه پیکربندی و نحوه استفاده از آن برای استفاده شخصی یا تجاری آشنا خواهید شد. این به شما کمک می کند تا بهره وری خود را به عنوان یک مهندس افزایش دهید.

Dev Container چیست؟

کانتینرهای توسعه‌دهنده، که به عنوان کانتینرهای توسعه نیز شناخته می‌شوند، یک محیط توسعه کامل را در داخل یک کانتینر ارائه می‌دهند که می‌توان به راحتی از طریق IDE دلخواه شما از طریق Secured Shell (SSH) به آن دسترسی داشت. این راه‌اندازی هرگونه مانعی را که از عملکرد کم تا پهنای باند کمتر، مانع گردش کار شما می‌شود را از بین می‌برد.

کانتینر شما می‌تواند روی زیرساخت‌های مختلفی از جمله ابرهای خصوصی و عمومی، خوشه‌ها یا ماشین‌های محلی کار کند و می‌توانید از سخت‌افزاری استفاده کنید که تکثیر آن به تنهایی چالش برانگیز است.

جنبه انزوا همچنین تضمین می کند که وابستگی های شما با هم تداخل نداشته و محیط محلی شما را مختل نمی کند. تمام پیکربندی کانتینر در یک فایل استاندارد .devcontainer.json از مایکروسافت ذخیره می شود که به عنوان دستورالعمل بسته بندی برای محیط شما عمل می کند.

تصویر-2
Dev Container Structure. از: containers.dev

این فایل از یک 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) استفاده کنید:

KcLU2UhZfNoxHiKs9wdUBeEVrJGvOviHYrNXlWgqdSq8D1afGSzr_TCnrmwsuTgH4Zm58e_MomNp3i_4LRKnxC6ppJ4v-p2A_mvokmVnk1JSW2ZJ9Y 6Fy-bgFnlWheOg
نمونه پیکربندی برای Dev Containers از VSCode Command Palette

حالا بیایید به مرحله بعدی یعنی انتخاب تصویر پایه برویم. شما می توانید هر تصویر پایه ای را که دوست دارید انتخاب کنید. در این مورد، ما از تصویر پایه Go استفاده می کنیم.

sgFvvnhlbN_nt8eQpk19ZGlWxZ5Dk3TK-nAXAZAdGw314fHKKEz5RkG8WXyxCKRO5x9VHyjtuyNH_-q7Vev2Ue4bszdKm8uACtAnFMazAzMvRJaJaQaZaJaJaJaJaQJaJaJa1JaQAzAzJaJaJaJaQAzAzA nwODEOYwaCwjONa4
پیکربندی پایه Dev Container

با این حال، می‌تواند نسخه‌های زیادی از Go وجود داشته باشد – پس قدم بعدی این است که نسخه‌ای را که می‌خواهید انتخاب کنید. آخرین نسخه موجود ۱.۲۱ است، پس توصیه می کنم از آن استفاده کنید. اما اگر ترجیح می دهید، می توانید یک تصویر از ابتدا بسازید یا حتی از نسخه های قدیمی تر انتخاب کنید.

فقط به پایین بروید و انتخاب کنید.

Hkg2vqYKxnuBn6A31LrVvETkND4_S0JUsIHqStVzZaKZz-1LtVnKZEAAdtA_BfX2CvHIW6e9-P8PPQObb3B1b2C3SrYjmSWw_st8WmfhwrfNa Fb21NS_lhKzEWk
نسخه فایل پیکربندی پایه انتخاب شده

گام بعدی این است که «ویژگی‌ها» را وارد کنید، که واحدهای کد نصب مستقلی هستند که به القای ابزارها یا ظروف خاصی در پیکربندی کانتینر برنامه‌نویس شما کمک می‌کنند. این ویژگی‌ها می‌توانند از ابزارهای جدید تا سفارشی‌سازی‌های خاص متغیر باشند که می‌توانید در اینجا بیشتر درباره آنها بیاموزید.

اما برای یک محیط ساده و ساده Go، از این مرحله می گذریم.

YXO8ZA_kH95z7OMTkrYmLz8VMenqCdlyUFpDl2uoRfJdrtvSLFtH-QouD1gToeLrye8MDRFGzGDaQy3yhXujAiC43LKb-TvctMmxWbLqaSwdeqVkdTv5U-X vrDx6eN8Fg
ویژگی های رایگانی که می تواند فضای کاری شما را تقویت کند

روی Ok کلیک کنید تا یک فایل Go .devcontainer.json اصلی در پوشه .devcontainer ایجاد شود:

 ~/Code/devcontainer-new main +4 !4 ❯ tree -a . ├── .devcontainer │ └── devcontainer.json

تبریک میگم اکنون محیطی دارید که ایزوله است و می توان آن را با هر کسی به اشتراک گذاشت.

نحوه استفاده از VSCode برای تنظیم کانتینر توسعه دهنده

برای اجرای این پیکربندی، می‌توانید به ساده‌ترین روشی که در زیر مشاهده می‌کنید، روی Reopen in Container کلیک کنید:

Ndj5FXh3EE09Ab_srEQH7lSQ35yDfQwLWBeJPQQMmx_JDZPVnQOZsCH-jZdTJ_ZXOfTRyc95fzhBPmPSZefUs7O3pT19xi3-FRcxMhVR6TJBs zqjp9E4YvHiRAehVlUg
نمونه فایل Dev Container با Go 1.21

برنامه گفت نی تصویر " mcr.microsoft.com/devcontainers/go:1-1.21-bullseye " را می کشد و سپس یک سرور SSH در آن ایجاد می کند.

NKkI-1yuc-HjQ53zmc2EfxT4zPbjSRf9r7uXSt3IVm2w7WeCLT5v9wwUJPdzIPO_0VT4tluONMOJowZeeQCa2iEZudAPJ_e2H9rchPVfT3IVm2w7WeCLT5v9wwUJPdzIPO_0VT4tluONMOJowZeeQCa2iEZudAPJ_e2H9rchPVf2FFI5wFuTang 4nYQyFMYk
راه اندازی Dev Container

پس از ساخت موفقیت آمیز نسخه Go، می توانید با اطمینان SSH وارد محیط کنید و عملیات خود را اجرا کنید. خواهید دید که نسخه Go همان نسخه ای است که ساخته اید و اتصال از Dev Container شما می آید که باعث موفقیت اتصال می شود:

wbxcN6fkTVxkVkn0UftnN2IsdZK79NJ32vSiLTCSlcJrX2woQjZvSjiIYl1Ynoxuil1GDPZ7SZkxYrjzEYWYCZG-Wcq6rEt7rbtB0oJccZwz8YsVJJJJWzwZGVXE x0MRKfzE5DP7g
Dev Container به صورت محلی اجرا می شود

Dev Container CLI

Devcontainers CLI یک رابط خط فرمان است که به شما کمک می کند کانتینر را از پیکربندی devcontainer خود اجرا، بسازید و اجرا کنید.

با کمک این ابزار می توانید محیطی را بدون استفاده از VSCode راه اندازی کنید و سپس از طریق SSH به صورت دستی به آن متصل شوید و آزادی بیشتری در اختیار شما قرار دهد.

اگرچه این ابزار جالب است، اما بسیاری از ویژگی‌ها هنوز راه‌اندازی نشده‌اند که در اینجا فهرست شده است:

YT7slbodThp_21lmmxyzafvWP7atDEn_6lrGTotxdWsF9idTfob0nnu_517dLHizjv9tEeehkzASWF1pPrQehYPf05tSDNDZONUajVhsEGsV93vofapIhsGsV93vofapIhsV93vofapIhsV93vofapIhsV93vofapIhsV93vofapIxbO6A 1CErx0
ویژگی نقشه راه

نحوه استفاده از Dev Containers برای داشتن پتانسیل کامل

هنگامی که devcontainer.json را بین هم تیمی های خود توزیع کردید، آنها به راحتی می توانند از آن برای راه اندازی محیط های محلی با مزایای مورد بحث استفاده کنند. اما اگر نیاز به کمک به آنها برای راه اندازی محیط روی Cloud برای استفاده از سخت افزار قدرتمند آن داشته باشید، چه؟

چند گزینه وجود دارد که می تواند به شما کمک کند. اولین مورد GitHub Codespaces است که به شما کمک می کند زیرساخت های مدیریت شده توسط GitHub در Azure را راه اندازی کنید.

اما ممکن است نیاز به استفاده از سخت افزار اختصاصی از خوشه Kubernetes یا ابر خصوصی یا عمومی وجود داشته باشد. چگونه آن را انجام دهید؟ می توانید از ابزارهای سمت کلاینت منبع باز مانند DevPod استفاده کنید که به شما کمک می کند در زیرساخت مورد نظر خود مستقر شوید.

_nKg6h4V7em9ZORxwFUVuWpgWxAmRLSfv2lWWm6JpSoJBDXDw56bjNfBhmxWtnpb8kGAgbvkZTn4kOo4oouV2vU7ypm-m5H1H9OROSskEvKFXwJ4 J0H0CZ4wooSPww
رابط کاربری DevPod

در حال حاضر، این ابزار دارای بیش از ۴.۴k ستاره است و هر روز با کشش بیشتر به سرعت در حال رشد است و با شعار « دادن قدرت به کاربر» است. هر Infra، هر IDE، و Unopinionated `:

تصویر-4
تاریخچه رشد GitHub - DevPod

این ابزار نامعلوم است، به این معنی که می‌توانید از آن در زیرساخت‌ها، IDEها و زبان‌های برنامه‌نویسی مختلف استفاده کنید.

برای مثال، اگر می‌خواهید یک Backend خاص در یک ارائه‌دهنده ابری داشته باشید، می‌توانید آن را با ارائه‌دهندگانی که از قبل در دسترس هستند انجام دهید، یا می‌توانید خودتان را مانند ۷ ارائه‌دهنده انجمن ایجاد کنید :

4WvTAJUH_qOmcuGSyDQnGKf4ZDpjQ7um2SwhUAfhaFTPSK5SMwUY0TV1JuSrYXKyyUl7fQvOONHbem1puJ6ohxYn2n_1tCnrHobieQRjlkZHBHWhWnPuqs 27Aatas25R_c
ارائه دهندگان DevPod

این ابزار همچنین اجازه می دهد تا یک محیط توسعه سازگار را ایجاد کنید که می توان به طور مکرر به آن در هر جایی که می خواهید اعتماد کرد و به هر ویرایشگر کد/IDE اعم از JetBrains، Jupyter یا VSCode متصل شد.

چگونه محیط توسعه خود را با استفاده از DevPod راه اندازی کنید

این ابزار هم نسخه دسکتاپ و هم نسخه CLI را ارائه می دهد، پس می توانید از هر کدام که مناسب تر است استفاده کنید. هنگام استفاده از DevPod Desktop برای ایجاد یک محیط، فرآیند به شرح زیر است:

مرحله ۱: DevPod را از دستورالعمل های رسمی نصب کنید.

مرحله ۲: یک ارائه دهنده را از طریق «Providers» > «+ Add» اضافه کنید. یک ارائه دهنده را انتخاب کنید و "ادامه" را انتخاب کنید.

CfrbpPmbH6X4H3SWDLVbc0ujGBakXbGKIauhv-YJ7nNQY6ISnhpU9cJqDzVjR6ylwBvaQ88bbUQSLMKaDG1KKu1B9Ezz_1-nUiZ6fGfqZ99UyKJgdX0 Kx9lXzOxfuk
ارائه دهنده DevPod AWS

مرحله ۳: با مسیر devcontainer.json خود Enter Workspace Source که می تواند یک مخزن راه دور یا محلی یا نمونه باشد:

B-ovwU1mYLxJu5_ANnbP_-dHKUOgMBa4hFiHUt2QEt6suJYGKV-I5M2YJ5wX714AFYNhzib0UOsMesL1t0XJzoordevJ4En91iVpDDzNcIRqWzMwZy7 -9YY8ZYgI
IDE و انتخاب ارائه دهنده

مرحله ۴: IDE پیش فرض خود را انتخاب کنید و روی Create Workspace کلیک کنید:

-etuLcx-G3VOHAwbNoPdcO9PWPiNu-KF3Z6NR0qq3vji5o7FCeDoJqywprmKo7yOmAlv4FV-JrRbopfXEjmK_CqyF0EmPT1zo8xZkfGmj7TZQL 1wAV0Jpih976s
ایجاد فضای کاری

اکنون، می توانید برنامه خود را بر روی نمونه در حال اجرا خود بسازید و پیکربندی کنید:

FWJpNnACbxTFA3BDD162oIploPPdBUQgYuaNu6dvoqAJEadvdUf5Ep5v_dMBEShFfj6lll085xLxVPpH-bte5tHLX8q2av42JDol9K_i3fnel5WFYqMtX ksiycanNA
Dev Container در حال اجرا در ماشین محلی شما

تبریک می گویم! شما با موفقیت اولین Dev Container خود را راه اندازی کردید 🎉

اگر احساس ماجراجویی می‌کنید و می‌خواهید CLI را کشف کنید، می‌توانید در اینجا درباره نحوه استفاده از آن اطلاعات بیشتری کسب کنید.

افکار نهایی

استانداردهایی مانند ظروف توسعه‌دهنده به شما کمک می‌کنند بهره‌وری و اکوسیستم توسعه کلی خود را بهبود ببخشید. این امر هزینه‌های شرکت‌ها را کاهش می‌دهد، زیرا می‌توان آخرین سخت‌افزار را بدون نیاز به کل تیم برای ارتقای ماشین‌های محلی خود هر دو سال یک بار تهیه کرد.

همچنین به شما کمک می کند تا بدون زحمت اعضای تیم جدید را وارد کنید و تجربه کاربری ثابتی داشته باشید.

ابزارهای کانتینر توسعه مانند DevPod می‌توانند امنیت و سفارشی‌سازی را برای برآوردن نیازهای مختلف در هر زیرساختی که می‌خواهید و در عین حال یک DevEx سازگار را حفظ کنند، بهبود بخشند. این امکان ساخت و آزمایش سریع‌تر با استفاده از آخرین سخت‌افزار را فراهم می‌کند و زمان نصب را با زمان کدنویسی جایگزین می‌کند.

برای کسب اطلاعات بیشتر می توانید به DevPod Slack بپیوندید.

ارسال نظر




تبليغات ايهنا تبليغات ايهنا

تمامی حقوق مادی و معنوی این سایت متعلق به خبرکاو است و استفاده از مطالب با ذکر منبع بلامانع است