إنتقل إلى المحتوى الرئيسي

0004 — CBotBuilder يعمل على مضيف الويب في حاوية رملية

السياق​

بناء cBot المستخدم يعني تشغيل MSBuild غير الموثوق - كود تعسفي في وقت البناء (أهداف، مولدات المصدر، نصوص الاستعادة). يحتاج إلى مقبس Docker لتشغيل حاوية SDK. يجب على العقد تشغيل حاويات التداول وعدم الاحتفاظ بامتيازات البناء أيضاً.

القرار​

CBotBuilder يعمل على مضيف الويب (الذي يمتلك بالفعل مقبس Docker)، داخل حاوية SDK قابلة للتجاهل مع:

  • دليل /work مرتبط بالربط (فقط مدخلات/مخرجات البناء، وليس نظام الملفات المضيف)؛
  • حجم app-nuget-cache مشترك لأداء الاستعادة؛
  • بدون وصول إلى شبكة المضيف خارج ما يحتاجه الاستعادة.

لذا لا يمكن لـ MSBuild غير الموثوق الوصول إلى نظام ملفات المضيف أو الشبكة. حاويات التشغيل/الاختبار، بالمقابل، تعمل على عقد من اختيار NodeScheduler.

النتائج​

  • امتياز البناء (مقبس Docker) مقتصر على مضيف الويب؛ تشغيل العقد فقط الصور المسموحة.
  • كل بناء معزول في حاوية يمكن التخلص منها - البناء الخبيث لا يمكن أن يستمر أو يهرب.
  • يجب على مضيف الويب أن يكون لديه مقبس Docker متاح؛ هذا هو متطلب النشر، وليس اختياري.