DevPod - أداة بيئات التطوير مفتوحة المصدر كالكود
DevPod (من قبل Loft) هي أداة عميل فقط مفتوحة المصدر التي تنشئ بيئات مطور قابلة للتكرار من معيار devcontainer.json على أي واجهة خلفية — Docker المحلي أو جهاز SSH بعيد أو مجموعة Kubernetes أو VM سحابية. فكر “Codespaces المستضاف ذاتياً بدون رأي”: تعمل مع أي IDE (VS Code أو JetBrains أو متصفح) وتتحكم أنت في حيث تعمل البيئة عبر موفري قابلين للتوصيل ولا توجد مكون خادم لتشغيله.
التثبيت
| الطريقة | الطريقة |
|---|
| CLI | تنزيل من إصدارات GitHub (Linux/macOS/Windows) |
| تطبيق سطح المكتب | تطبيق DevPod Desktop GUI متاح |
| المتطلب | واجهة خلفية موفر (Docker, SSH host, K8s, cloud) |
| التحقق | devpod version |
الموفرون (حيث تعمل البيئات)
| الأمر | الوصف |
|---|
devpod provider add docker | استخدم Docker المحلي |
devpod provider add ssh --option HOST=user@host | استخدم جهاز بعيد |
devpod provider add kubernetes | تشغيل في مجموعة K8s |
devpod provider add aws (gcloud, azure) | موفرو VM السحابية |
devpod provider list | قائمة الموفرين المكونين |
devpod provider use docker | تعيين الموفر الافتراضي |
إنشاء مساحات العمل
| الأمر | الوصف |
|---|
devpod up . | ابدأ بيئة من مستودع devcontainer الحالي |
devpod up github.com/org/repo | من عنوان URL لمستودع Git |
devpod up . --ide vscode | فتح في IDE محدد |
devpod up . --provider kubernetes | اختر واجهة خلفية |
devpod up . --recreate | إعادة بناء مساحة العمل |
إدارة مساحات العمل
| الأمر | الوصف |
|---|
devpod list | قائمة مساحات العمل |
devpod stop <name> | أوقف مساحة عمل |
devpod delete <name> | حذف مساحة عمل |
devpod ssh <name> | SSH في مساحة عمل |
devpod status <name> | عرض حالة مساحة العمل |
devcontainer.json (المواصفات)
تستهلك DevPod مواصفات Dev Container المفتوحة حتى يعمل نفس الملف في Codespaces و VS Code و DevPod.
{
"name": "my-project",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers/features/node:1": { "version": "20" }
},
"postCreateCommand": "npm install",
"customizations": {
"vscode": { "extensions": ["dbaeumer.vscode-eslint"] }
}
}
| الحقل | الغرض |
|---|
image / dockerfile | بيئة أساسية |
features | إضافات قابلة للتكوين (اللغات والأدوات) |
postCreateCommand | إعداد التشغيل بعد الإنشاء |
forwardPorts | المنافذ المراد تعريضها |
customizations | إعدادات/امتدادات خاصة بـ IDE |
تكامل IDE
| IDE | الطريقة |
|---|
| VS Code | --ide vscode (سطح المكتب أو المتصفح) |
| JetBrains | --ide goland/pycharm/... |
| متصفح (openvscode) | --ide openvscode |
| SSH/terminal | devpod ssh <name> |
سير العمل العام
# بيئة تطوير Docker محلية من devcontainer الخاص بمستودع
devpod provider add docker
devpod up github.com/org/project --ide vscode
# تفريغ الإنشاءات الثقيلة إلى جهاز بعيد قوي
devpod provider add ssh --option HOST=me@build-server
devpod up . --provider ssh
# بيئة سحابية مؤقتة في Kubernetes محذوفة عند الانتهاء
devpod up . --provider kubernetes
devpod delete my-project
DevPod مقابل البدائل
| الجانب | DevPod | GitHub Codespaces | Devbox | Gitpod |
|---|
| استضافة | أي واجهة خلفية (اختيارك) | سحابة GitHub | محلي (Nix) | السحابة/self-host |
| المواصفات | devcontainer.json | devcontainer.json | devbox.json | إعداد Gitpod |
| خادم | لا شيء (عميل فقط) | إدارة | لا شيء | خادم |
| الأفضل لـ | محمول، أي سحابة dev | صفر إعدادات GitHub | محلي قابل للتكرار | مساحات عمل تم تشغيلها بـ Git |
تستخدم DevPod نفس devcontainer spec مثل Codespaces؛ للبيئات المحلية القائمة على Nix انظر Devbox.
الموارد