CodeShot

VS Code Remote - SSH در مقابل VS Code Dev Containers

افزونه Remote-SSH به VS Code اجازه می‌دهد مستقیماً به یک سرور یا ماشین لینوکسی راه دور وصل شده و در محیط همان سرور کد بزنید، در حالی که Dev Containers کد را داخل یک کانتینر Docker تعریف‌شده با فایل پیکربندی محلی اجرا و ویرایش می‌کند.

ویژگیVS Code Remote - SSHVS Code Dev Containers
محل اجراسرور/ماشین راه دور واقعیکانتینر Docker محلی یا راه دور
تکرارپذیری محیطوابسته به تنظیمات سرورکاملاً تکرارپذیر با فایل پیکربندی
نیاز به Dockerخیربله

کِی از VS Code Remote - SSH استفاده کنیم؟

وقتی نیاز دارید مستقیماً روی یک سرور، VM ابری یا Raspberry Pi واقعی کار کنید که از قبل محیط آن آماده است.

کِی از VS Code Dev Containers استفاده کنیم؟

وقتی می‌خواهید محیط توسعه یکسان و قابل تکرار (همان نسخه‌های ابزار برای همه اعضای تیم) را با یک فایل پیکربندی نسخه‌بندی‌شده در Git تعریف کنید.

مثال VS Code Remote - SSH

// Remote-SSH: اتصال به سرور با
// Command Palette > Remote-SSH: Connect to Host
// user@my-server.com

مثال VS Code Dev Containers

// .devcontainer/devcontainer.json
{
  "image": "mcr.microsoft.com/dotnet/sdk:8.0",
  "extensions": ["ms-dotnettools.csharp"]
}

اشتباه رایج

اشتباه رایج این است که Dev Containers را فقط یک "Docker Compose دیگر" بدانیم؛ در واقع تفاوت اصلی این است که Dev Containers محیط توسعه تکرارپذیر می‌سازد، ولی Remote-SSH فقط به زیرساخت از قبل موجود وصل می‌شود.

جمع‌بندی

برای اتصال به سرور یا زیرساخت واقعی از Remote-SSH و برای محیط توسعه یکسان و قابل نسخه‌بندی بین اعضای تیم از Dev Containers استفاده کنید.