عن المشروع

debux هو مصحح أخطاء حاويات مفتوح المصدر مصمم لبيئات Docker و Kubernetes. يعالج مشكلة شائعة: تصحيح أخطاء الحاويات ذات الطابع الإنتاجي التي تفتقر إلى الصدفات أو مديري الحزم، مثل صور distroless و scratch والصور المصغرة. على عكس `docker exec`، الذي يتطلب أدوات وصدفة داخل الصورة المستهدفة، يبدأ debux حاوية صندوق أدوات تصحيح منفصلة تلتصق بالهدف، وتشارك مساحات الأسماء المفيدة (الشبكة، العملية)، وتكشف نظام ملفات الهدف في `$DEBUX_TARGET_ROOT` (عادةً `/proc/1/root`). تشمل القدرات الرئيسية: - **يعمل مع أي حاوية**: يصحح أخطاء الحاويات الجارية أو المتوقفة أو المنتهية أو التي تعيد التشغيل بشكل متكرر، بما في ذلك تلك التي تفتقر إلى الصدفات أو مديري الحزم. - **دعم Docker و Kubernetes**: سير عمل موحد لحاويات Docker المحلية، وخدمات Docker Compose، وحاويات Podman، وحاويات Kubernetes. يدعم أيضًا تصحيح أخطاء عقد Kubernetes مع الوصول إلى مساحة اسم المضيف. - **صندوق أدوات جاهز**: الأدوات المثبتة مسبقًا تشمل curl و wget و dig و nmap و tcpdump و strace و ltrace و gdb و htop و vim و jq و git و openssh و zsh و tmux والمزيد. يعتمد صندوق الأدوات على Wolfi ويستخدم mise لإدارة الحزم. - **تثبيت الأدوات عند الطلب**: يقوم أمر `dctl` بتثبيت أدوات إضافية أثناء جلسة التصحيح باستخدام mise. يمكن تحميل الأدوات مسبقًا في بداية الجلسة باستخدام `--tools`. - **صدفة مدركة للهدف**: انتقل إلى جذر الهدف، وافحص عمليات الهدف، وأعد استخدام مساحة اسم شبكة الهدف، وشغل ثنائيات الهدف الخاصة عبر chroot عندما يفتقر صندوق الأدوات إليها. - **إعادة توجيه المنافذ ونسخ الملفات**: الوصول إلى الملفات وسحبها من أي هدف، حتى الحاويات التي بدأت بدون `-p` وحاويات distroless حيث يفشل `kubectl cp`. - **وضع النسخ في Kubernetes**: عندما يتم حظر الحاويات المؤقتة بواسطة RBAC أو سياسة القبول، يقوم `--copy` بإنشاء نسخة مؤقتة من البود للتصحيح. يدعم جلسات النسخ طويلة الأمد مع TTL وحماية Karpenter وقدرات إعادة الالتحاق. - **تصحيح أخطاء العقد**: يقوم `debux node` بجدولة بود صندوق أدوات بمساحة اسم المضيف على عقدة Kubernetes، مع تركيب نظام ملفات جذر العقدة ومشاركة مساحات أسماء PID والشبكة و IPC. - **تصحيح أخطاء الصور**: تصحيح أخطاء صورة دون تشغيلها، مفيد عندما لا يمكن للصورة نفسها الإقلاع. - **واجهة TUI**: متصفح هدف بملء الشاشة مع تنقل في سياق/مساحة اسم Kubernetes و Docker، وإعادة الالتحاق بالجلسات النشطة، والجلسات الأخيرة، ومفاتيح الخيارات. - **إكمال الصدفة**: الإكمالات المولدة تشمل أهداف Docker و Kubernetes الحية مع مطابقة السلاسل الفرعية. يتم توزيع الأداة كملف ثنائي واحد مع سكربت تثبيت يدعم Linux و macOS على amd64/arm64. يتم التحقق من أصول الإصدار عبر المجاميع الاختبارية، مع دعم التحقق من التوقيع الاختياري عبر cosign. المشروع مرخص بموجب MIT.