Devbox - بيئات التطوير القابلة للتكرار
ينشئ Devbox (من قبل Jetify) بيئات تطوير معزولة وقابلة للتكرار بدون Docker أو الآلات الافتراضية. وهي مدعومة بـ Nix لكنها تخفي لغة Nix وراء تكوين JSON بسيط (devbox.json) وواجهة سطر أوامر مألوفة — تقوم بتشغيل devbox add nodejs@20 بدلاً من كتابة مشتق Nix. النتيجة: الجميع في الفريق (وCI) يحصلون على نفس مجموعة الأدوات بالضبط، مثبت بإصدارات دقيقة، معزول عن نظام المضيف.
التثبيت
الشروع في العمل
| الأمر | الوصف |
|---|
devbox init | إنشاء devbox.json في المشروع |
devbox add nodejs@20 python@3.12 | إضافة حزم (إصدارات مثبت) |
devbox rm python | إزالة حزمة |
devbox install | تثبيت كل شيء في devbox.json |
devbox shell | أدخل البيئة المعزولة |
devbox run <script> | قم بتشغيل سيناريو محدد داخل env |
إدارة الحزم
| الأمر | الوصف |
|---|
devbox add go@1.22 | إضافة إصدار محدد |
devbox search postgresql | البحث في كتالوج حزم Nix |
devbox list | قائمة الحزم المثبت |
devbox update | تحديث الحزم إلى الأحدث المسموح |
devbox info nodejs | عرض التفاصيل الخاصة بحزمة |
تحل الإصدارات مقابل كتالوج Nixpkgs، لذلك nodejs@20 قابل للتكرار في كل مكان.
التكوين (devbox.json)
{
"packages": ["nodejs@20", "python@3.12", "postgresql@16"],
"shell": {
"init_hook": ["echo 'مرحباً بك في بيئة المشروع'"],
"scripts": {
"dev": "npm run dev",
"test": "npm test",
"db": "pg_ctl start"
}
}
}
| الحقل | الغرض |
|---|
packages | إصدارات الأداة/اللغة المثبت |
shell.init_hook | الأوامر التي تعمل عند إدخال الصدفة |
shell.scripts | أوامر مسماة (devbox run dev) |
env | متغيرات البيئة للمشروع |
الصدفة والسيناريوهات
| الأمر | الوصف |
|---|
devbox shell | صدفة تفاعلية معزولة |
devbox run dev | قم بتشغيل نص dev |
devbox run -- npm ci | تشغيل أمر تعسفي في env |
exit | اترك صدفة Devbox |
الخدمات (إدارة العمليات)
يمكن لـ Devbox إدارة الخدمات الخلفية (قواعد البيانات وغيرها) للمشروع.
| الأمر | الوصف |
|---|
devbox services ls | قائمة الخدمات المكونة |
devbox services up | بدء الخدمات |
devbox services stop | إيقاف الخدمات |
devbox add postgresql --start-services | إضافة حزمة مدعومة بالخدمة |
CI والحاويات
| الاستخدام | الطريقة |
|---|
| CI | قم بتثبيت Devbox، قم بتشغيل devbox run test — env مطابقة محلية |
| Docker | devbox generate dockerfile ينتج صورة قابلة للتكرار |
| Devcontainer | devbox generate devcontainer لـ VS Code |
| Direnv | devbox generate direnv للدخول التلقائي على cd |
سير العمل العام
# قم بإعداد بيئة مشروع قابلة للتكرار من الصفر
devbox init
devbox add nodejs@20 postgresql@16
devbox shell # الآن node + postgres متاحتان، مثبت
# تشغيل المهام بنفس الطريقة محلياً وفي CI
devbox run test
# إنتاج صورة Docker من نفس التعريف
devbox generate dockerfile
Devbox مقابل البدائل
| الجانب | Devbox | حاويات التطوير | Nix (خام) | mise |
|---|
| الواجهة الخلفية | Nix | Docker | Nix | سجل خاص |
| التكوين | JSON | devcontainer.json | لغة Nix | .mise.toml |
| العزل | حقيقي (مخزن Nix) | حاوية | حقيقي | إصدارات الأداة |
| منحنى التعلم | لطيف | معتدل | شديد | لطيف |
| الأفضل لـ | بيئات قابلة للتكرار وسهلة | تطوير قائم على الحاوية | قوة Nix الكاملة | إدارة إصدار الأداة |
انظر أيضاً Nix للقوة الأساسية، devcontainer لتطوير قائم على الحاوية، و mise لإدارة إصدار الأداة.
الموارد