0004 — CBotBuilder يعمل على مضيف الويب في حاوية رملية
السياق
بناء cBot المستخدم يعني تشغيل MSBuild غير الموثوق - كود تعسفي في وقت البناء (أهداف، مولدات المصدر، نصوص الاستعادة). يحتاج إلى مقبس Docker لتشغيل حاوية SDK. يجب على العقد تشغيل حاويات التداول وعدم الاحتفاظ بامتيازات البناء أيضاً.
القرار
CBotBuilder يعمل على مضيف الويب (الذي يمتلك بالفعل مقبس Docker)، داخل حاوية SDK قابلة للتجاهل مع:
- دليل
/workمرتبط بالربط (فقط مدخلات/مخرجات البناء، وليس نظام الملفات المضيف)؛ - حجم
app-nuget-cacheمشترك لأداء الاستعادة؛ - بدون وصول إلى شبكة المضيف خارج ما يحتاجه الاستعادة.
لذا لا يمكن لـ MSBuild غير الموثوق الوصول إلى نظام ملفات المضيف أو الشبكة. حاويات التشغيل/الاختبار، بالمقابل، تعمل على عقد من اختيار NodeScheduler.
النتائج
- امتياز البناء (مقبس Docker) مقتصر على مضيف الويب؛ تشغيل العقد فقط الصور المسموحة.
- كل بناء معزول في حاوية يمكن التخلص منها - البناء الخبيث لا يمكن أن يستمر أو يهرب.
- يجب على مضيف الويب أن يكون لديه مقبس Docker متاح؛ هذا هو متطلب النشر، وليس اختياري.