ما توی سایتمون یه بخش IDE آنلاین داشتیم که به کاربرها اجازه میداد کد بزنن و نتیجه رو همونجا ببینن. اما اجرای کدهای ناشناس روی سرور اصلی، یه کابوس امنیتیه! کافی بود یه کاربر یه کد مخرب بنویسه تا به فایلهای سیستمی یا دیتابیس دسترسی پیدا کنه یا کلاً سرور رو مختل کنه.
برای حل این مشکل، تصمیم گرفتم از داکر مستقیم توی لایه خودِ اپلیکیشن استفاده کنم. حالا روال کار اینطوریه که به محض اینکه کاربر دکمه ران (Run) رو میزنه، یه کانتینر ایزوله (Sandbox) ساخته میشه؛ کد توی امنترین حالت ممکن و بدون هیچ دسترسی به سرور اصلی اجرا میشه و بعد از اینکه خروجی رو برگردوند، اون کانتینر نابود میشه.
با این کار علاوهبر امنیت، خیالم از منابع سرور هم راحت شد؛ چون برای هر کانتینر سقف مصرف رم و سیپییو گذاشتم تا اگه کسی یه حلقه بینهایت هم ران کرد، سرور زیر بار نره و کم نیاره.