تخطَّ إلى المحتوى

Devbox - بيئات التطوير القابلة للتكرار

Devbox - بيئات التطوير القابلة للتكرار

ينشئ Devbox (من قبل Jetify) بيئات تطوير معزولة وقابلة للتكرار بدون Docker أو الآلات الافتراضية. وهي مدعومة بـ Nix لكنها تخفي لغة Nix وراء تكوين JSON بسيط (devbox.json) وواجهة سطر أوامر مألوفة — تقوم بتشغيل devbox add nodejs@20 بدلاً من كتابة مشتق Nix. النتيجة: الجميع في الفريق (وCI) يحصلون على نفس مجموعة الأدوات بالضبط، مثبت بإصدارات دقيقة، معزول عن نظام المضيف.

التثبيت

الطريقةالأمر
سيناريو التثبيت`curl -fsSL https://get.jetify.com/devbox
المتطلبNix (يمكن لـ Devbox تثبيته لك)
التحققdevbox version

الشروع في العمل

الأمرالوصف
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 مطابقة محلية
Dockerdevbox generate dockerfile ينتج صورة قابلة للتكرار
Devcontainerdevbox generate devcontainer لـ VS Code
Direnvdevbox 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
الواجهة الخلفيةNixDockerNixسجل خاص
التكوينJSONdevcontainer.jsonلغة Nix.mise.toml
العزلحقيقي (مخزن Nix)حاويةحقيقيإصدارات الأداة
منحنى التعلملطيفمعتدلشديدلطيف
الأفضل لـبيئات قابلة للتكرار وسهلةتطوير قائم على الحاويةقوة Nix الكاملةإدارة إصدار الأداة

انظر أيضاً Nix للقوة الأساسية، devcontainer لتطوير قائم على الحاوية، و mise لإدارة إصدار الأداة.

الموارد