کلاڈ کوڈ اصلاحات کی تجویز سے زیادہ کچھ کر سکتا ہے۔ آپ فائلوں میں ترمیم کر سکتے ہیں، انحصار انسٹال کر سکتے ہیں، ٹیسٹ چلا سکتے ہیں، اور ایپلیکیشن شروع کر سکتے ہیں۔
لیکن انہیں اپنے طور پر کام مکمل کرنے کے لیے چھوڑ دینا عملی سوالات کو جنم دیتا ہے۔ آپ کو اس کمانڈ کو اپنے کمپیوٹر پر کتنا اثر انداز ہونے دینا چاہئے؟
آپ ایک وقت میں ایک حکم کی منظوری دے کر راستے کے ہر قدم میں شامل رہ سکتے ہیں۔ اس پرامپٹ کو ہٹانے سے Claude کام جاری رکھ سکے گا، لیکن ہمیں پھر بھی رسائی کو محدود کرنے کا طریقہ درکار ہے۔
ڈوکر سینڈ باکسز ایک ہلکے وزن والے لینکس ورچوئل مشین کے اندر کلاڈ کو چلا کر اس حد کو فراہم کرتے ہیں جسے مائکرو وی ایم کہا جاتا ہے جس میں پروجیکٹ اور نیٹ ورک تک کنٹرول شدہ رسائی ہے۔
میں جاننا چاہتا تھا کہ وہ آزادی کتنی مفید ہے اور اس کی حدود کہاں ہیں۔ ڈوکر سینڈ باکس کے اندر، کلاڈ نے میری فلاسک ایپ میں ہیلتھ اینڈ پوائنٹ شامل کیا، ٹیسٹ لکھے، ایک ڈوکر امیج بنایا، اور تصدیق کی کہ کنٹینر نے تینوں ٹیسٹ پاس کیے اور ایپلیکیشن ریسپانسیو تھی۔ آرڈر کو منظوری کی درخواست کے بغیر ختم کر دیا گیا تھا۔
میں نے ڈوکر کے دو پروجیکٹ موڈز کا بھی تجربہ کیا: ڈائریکٹ موڈ میں، ایک سینڈ باکس کلاڈ میرے میک پر پروجیکٹ فولڈر کو فوری طور پر تبدیل کر سکتا ہے۔ کلون موڈ میں، ہم نے سینڈ باکس کے اندر ایک علیحدہ کاپی پر کام کیا، جس سے ہمیں اصل پروجیکٹ پر لاگو کرنے سے پہلے تبدیلیوں کا جائزہ لینے کی اجازت ملتی ہے۔ اس کے بعد ہم نے جانچا کہ کلاڈ کون سی فائلیں پڑھ سکتا ہے، بدل سکتا ہے اور نیٹ ورک پر بھیج سکتا ہے۔
اس آرٹیکل میں، آپ سیکھیں گے کہ Docker Sandboxes کیا الگ تھلگ کرتا ہے، ہماری جانچ سے کیا پتہ چلتا ہے، اور Claude کو اپنے پروجیکٹس پر مشتمل سینڈ باکس میں کیسے چلایا جائے۔ آپ براہ راست اور نقل شدہ طریقوں کے درمیان انتخاب کریں گے، نیٹ ورک تک رسائی کو ترتیب دیں گے، اور اسے استعمال کرنے سے پہلے کلاڈ کے کام کا جائزہ لیں گے۔
انڈیکس
شرطیں
اس مضمون میں دی گئی ہدایات پر عمل کرنے کے لیے، آپ کو ضرورت ہو گی:
-
بنیادی ٹرمینل مہارتیں اور گٹ کمٹ، برانچز اور اختلافات کا علم۔ یہ جاننا کہ ڈوکر امیجز اور کنٹینرز کیا ہیں مثال ایپلی کیشنز میں مدد ملے گی۔
-
ایک Apple Silicon Mac چلانے والا macOS Sonoma 14 یا اس کے بعد کا ہومبریو اور Git انسٹال ہے۔ یہ ہدایات macOS کا استعمال کرتی ہیں۔ دوسرے معاون پلیٹ فارمز پر ڈوکر دستاویزات کو انسٹال کرنا۔
-
کلاڈ سبسکرپشن جس میں ڈوکر اکاؤنٹ اور کلاڈ کوڈ یا اینتھروپک API کلید شامل ہے۔ ہم ذیل میں لاگ ان کرنے کا طریقہ دیکھیں گے۔
-
یہ ایک مقامی پروجیکٹ ہے جس پر کام کرنا ہے۔ کلون موڈ استعمال کرنے کے لیے، یہ ایک ابتدائی کمٹ کے ساتھ گٹ ریپوزٹری ہونا چاہیے۔ مثال کے کاموں میں Flask کا استعمال ہوتا ہے، لیکن آپ Claude کو اپنے پروجیکٹ کے لیے مناسب کام فراہم کر سکتے ہیں۔
آپ کو اپنے میک پر ڈوکر ڈیسک ٹاپ یا ڈوکر انجن انسٹال کرنے کی ضرورت نہیں ہے۔ آئیے ڈوکر انسٹال کریں۔ sbx نیچے کمانڈ۔
سینڈ باکس کیا الگ کرتا ہے۔
آپ کا کمپیوٹر ماسٹر. سینڈ باکس ایک علیحدہ لینکس ماحول ہے جو اس کے اوپر چلتا ہے۔
باقاعدہ لینکس کنٹینرز لینکس سسٹم کے کرنل کو شیئر کرتے ہیں جو انہیں چلاتا ہے۔ ڈوکر سینڈ باکس کا اپنا دانا ہے، آپریٹنگ سسٹم کا ایک حصہ جو عمل اور ہارڈویئر تک رسائی کا انتظام کرتا ہے۔ یہ سینڈ باکس کے آپریٹنگ سسٹم کو میزبان آپریٹنگ سسٹم سے الگ کرتا ہے۔
کلاڈ sudo سینڈ باکس کے اندر رسائی کے ساتھ، کلاڈ لینکس ایڈمنسٹریٹر کے طور پر کمانڈ چلا سکتا ہے۔ مثال کے طور پر، Claude سینڈ باکس کے اندر سافٹ ویئر انسٹال کر سکتا ہے یا سسٹم فائلوں کو تبدیل کر سکتا ہے۔
یہ اجازتیں کلاڈ کو آپ کے میک پر ایڈمنسٹریٹر نہیں بناتی ہیں۔ آپ جو فولڈرز Claude کے ساتھ اشتراک کرنے کے لیے منتخب کرتے ہیں ان کے اپنے رسائی کے اصول ہوتے ہیں۔ (ماخذ: ڈاکر کی قرنطینہ دستاویز)
Docker’s Claude انضمام درج ذیل کمانڈ کا استعمال کرتے ہوئے کلاڈ کو ورچوئل مشین کے اندر لانچ کرنے کے لیے پہلے سے طے شدہ ہے۔
claude --dangerously-skip-permissions
یہ جھنڈا Claude کے عام ٹول کی منظوری کے پرامپٹ کو غیر فعال کر دیتا ہے۔ ڈوکر تنہائی فراہم کرتا ہے اور فائلوں اور نیٹ ورک کی منزلوں تک رسائی کو کنٹرول کرتا ہے۔ آپ اس ماحول کو اپنے کمپیوٹر پر Docker کا استعمال کرتے ہوئے لانچ کرتے ہیں۔ sbx حکم (ماخذ: ڈاکر پر کلاڈ کوڈ ورک بک)
Docker Sandboxes آپ کے پروجیکٹ کو کلاڈ کو دستیاب کرانے کے دو طریقے فراہم کرتے ہیں:
| طریقہ | جہاں کلاڈ کام کرتا ہے۔ | میرے کمپیوٹر پر فائلوں کا کیا ہوتا ہے؟ |
|---|---|---|
| براہ راست موڈ | آپ کے کمپیوٹر پر منتخب پروجیکٹ فولڈر | Claude اس فولڈر میں فائلوں کو فوری طور پر پڑھ، تبدیل، تخلیق اور حذف کر سکتا ہے۔ |
| کلون موڈ | سینڈ باکس میں گٹ پروجیکٹ کی ایک الگ کاپی | کلاڈ اصل فولڈر کو پڑھ سکتا ہے، لیکن وہ ترامیم اس وقت تک سینڈ باکس میں رہتی ہیں جب تک کہ وہ بازیافت اور لاگو نہ ہو جائیں۔ |
کلاڈ ایک ورچوئل مشین کے اندر دونوں طریقوں سے چلتا ہے۔ ڈائریکٹ موڈ ورچوئل مشین کو آپ کے کمپیوٹر پر مخصوص فولڈرز کو تبدیل کرنے کی صلاحیت فراہم کرتا ہے۔ اس کا مطلب یہ نہیں ہے کہ کلاڈ براہ راست آپ کے میک پر چلے گا۔
خاکہ کلاڈ کے کام کے ماحول کو باقی کمپیوٹر سے الگ کرتا ہے۔ ورچوئل مشین کے اندر، کلاڈ شیل کمانڈز چلا سکتا ہے، سافٹ ویئر انسٹال کر سکتا ہے اور ذاتی فائلیں بنا سکتا ہے۔ تصاویر بنانے اور کنٹینرز چلانے کے لیے ایک الگ ڈوکر انجن بھی ہے۔
"ورک اسپیس ماؤنٹ” کا لیبل لگا کنکشن پروجیکٹ فولڈر کو سینڈ باکس میں دستیاب کرتا ہے۔ "میزبان چیک آؤٹ” کا مطلب ہے آپ کے کمپیوٹر پر پروجیکٹ فولڈر۔ براہ راست موڈ میں، کلاڈ ان فائلوں کو فوری طور پر پڑھ اور تبدیل کر سکتا ہے۔ کلون موڈ میں، کلاڈ اصل فولڈر کو پڑھ سکتا ہے، لیکن ورچوئل مشین کے اندر الگ کاپی پر تبدیلیاں لاگو کرتا ہے۔ کمٹ کی تلاش کریں، ان کا جائزہ لیں، اور انہیں اپنے اصل پروجیکٹ پر لاگو کریں۔
نیٹ ورک کا تیر دوسرے کنٹرول کنکشن کی نشاندہی کرتا ہے۔ باہر جانے والی درخواستیں آپ کے کمپیوٹر پر ایک پراکسی سے گزرتی ہیں جو یہ چیک کرتی ہے کہ آیا منزل کی اجازت ہے۔ اس پراکسی کے ذریعے انتظام کردہ اسناد کے لیے، پراکسی مماثل سروس کی درخواست میں تصدیق کا اضافہ کرتی ہے۔ یہ آپ کو اپنی درخواستوں میں API کلید کو سینڈ باکس میں ذخیرہ کیے بغیر استعمال کرنے کی اجازت دیتا ہے۔
کراس آؤٹ کنکشن ظاہر کرتے ہیں کہ یہ اجازتیں کیا فراہم نہیں کرتی ہیں: غیر اشتراک کردہ فائلوں تک براہ راست رسائی، چلانے کے عمل، یا آپ کے کمپیوٹر پر ڈوکر انجن۔ خاکہ پہلے سے طے شدہ ترتیبات کو ظاہر کرتا ہے۔ اضافی انضمام اور شائع شدہ ایپلیکیشن پورٹس ایسے کنکشن بناتے ہیں جنہیں آپ الگ سے کنفیگر کرتے ہیں۔
تجربے نے کیا دکھایا
ڈائریکٹ موڈ نے کلاڈ سے پراجیکٹ فائلوں کو ڈیلیٹ کرنے اور گٹ ہکس کو شامل کرنے کو کہا، جو کہ اسکرپٹ ہیں جو کہ برانچ سوئچنگ جیسے آپریشنز کے دوران Git چل سکتی ہے۔ دونوں تبدیلیاں میرے میک پر پروجیکٹ فولڈر میں فوری طور پر ظاہر ہوئیں۔ اسے براہ راست رسائی موڈ فراہم کرنے کے لیے ترتیب دیا گیا ہے۔
ہک جائزہ لینے کے مسئلے کو بے نقاب کرتا ہے: اوسط git diff اس نے حذف شدہ فائلیں دکھائیں لیکن نئی ہکس نہیں۔ ہک مخزن میں ہے۔ .git/hooks ایک ڈائرکٹری، فائلوں کے باہر جو گٹ عام طور پر کمٹ میں شامل ہوتی ہے۔ ہم نے ہک پر عمل نہیں کیا۔
سبق یہ ہے کہ براہ راست موڈ سیشن کا جائزہ لینے کے لیے صرف کوڈ کے فرق سے زیادہ معائنہ کی ضرورت پڑ سکتی ہے۔
کلون موڈ میں، کلاڈ نے فائل کو حذف کر دیا اور اپنی نجی کاپی میں تبدیلیوں کا ارتکاب کیا۔ میرے میک پر اصل پروجیکٹ میں کوئی تبدیلی نہیں کی گئی۔ میں شاخ کو کھینچ سکتا ہوں اور کچھ بھی لگانے سے پہلے اختلافات کا معائنہ کر سکتا ہوں۔ پرائیویٹ گٹ ہکس درآمد شدہ کمٹ کے ساتھ فراہم نہیں کیے گئے تھے۔
کلاڈ ان ٹیسٹ فائلوں کو بھی نہیں پڑھ سکتا تھا جو میں نے میک پر ایک علیحدہ، غیر شیئر شدہ فولڈر میں رکھی تھیں۔ تاہم، آپ دونوں طریقوں میں پروجیکٹ کے اندر موجود فائلوں کو پڑھ سکتے ہیں۔ اگر آپ واضح طور پر کسی ٹیسٹ سرور کو نیٹ ورک کنیکٹیویٹی کی اجازت دیتے ہیں، تو کلاڈ اس سرور کو پڑھنے کے قابل ٹیسٹ ویلیوز بھیج سکتا ہے۔ کسی فائل کو ترمیم سے بچانے کا مطلب یہ نہیں ہے کہ اس کا مواد خفیہ رہے گا۔
یہ نتائج ایک عملی انتخاب کی طرف اشارہ کرتے ہیں۔ ایڈیٹر میں فوری طور پر ترمیم کرنے کے لیے ڈائریکٹ موڈ کا استعمال کریں۔ پروجیکٹ میں تبدیلیاں کرنے سے پہلے کام کا جائزہ لینے کے لیے ڈپلیکیٹ وضع کا استعمال کریں۔
تجرباتی ذخیرہ تفصیلی طریقہ کار اور ریکارڈ شدہ نتائج پر مشتمل ہے۔ نیچے دی گئی ترتیبات کو اپنے پروجیکٹ میں استعمال کرنے کے لیے آپ کو ٹیسٹ فائل کی ضرورت نہیں ہے۔
ڈوکر سینڈ باکس میں انسٹال اور لاگ ان کریں۔
میں نے Apple-silicon Mac پر sbx v0.43.0 استعمال کیا۔ میک انسٹالیشن کے لیے macOS سونوما 14 یا اس کے بعد کی ضرورت ہے۔ آپ کو اپنے میک پر ڈوکر ڈیسک ٹاپ یا ڈوکر انجن انسٹال کرنے کی ضرورت نہیں ہے۔ میک ٹرمینل میں درج ذیل کمانڈ کو چلائیں:
brew trust docker/tap
brew install docker/tap/sbx
sbx login
sbx version
اگر sbx یہ پہلے ہی انسٹال ہے۔ brew upgrade docker/tap/sbx اسے اپ ڈیٹ کریں۔ ورژن کمانڈ آپ کو بتاتی ہے کہ آپ کے پاس فی الحال کون سی ریلیز ہے۔ تجرباتی نتائج v0.43.0 کے ہیں۔ (مزید تفصیلات کے لیے ڈاکر کی تنصیب کی ہدایات دیکھیں۔)
sbx login Docker میں لاگ ان کریں۔ کلاڈ کو علیحدہ تصدیق کی ضرورت ہے۔ اگر آپ Anthropic API کلید استعمال کر رہے ہیں، تو اپنے Mac پر درج ذیل کمانڈ کو چلائیں اور جب اسے محفوظ کرنے کا اشارہ کیا جائے تو کلید درج کریں۔
sbx secret set anthropic
اگر آپ اس کے بجائے کلاڈ سبسکرپشن استعمال کر رہے ہیں، تو اس کمانڈ کو چھوڑ دیں۔ سینڈ باکس کے اندر کلاڈ کو شروع کرنے کے بعد، ٹائپ کریں: /login کلاڈ کا انٹرفیس درج کریں۔
API کیز کو سورس فائلوں میں اسٹور نہ کریں۔ .env یہ اس پروجیکٹ کے اندر کی ایک فائل ہے جو میں نے کلاڈ کو فراہم کی تھی۔ کلاڈ اس فولڈر کو پڑھ سکتا ہے، بشمول کلون موڈ میں۔ اوپر دیے گئے تصدیقی مراحل کا استعمال کرتے ہوئے کلاڈ کو اپنے اکاؤنٹ سے مربوط کریں۔ (مزید معلومات کے لیے، کلاڈ کوڈ کی توثیق کے لیے ڈاکر کا گائیڈ دیکھیں۔)
نیٹ ورک ایکسیس کلیڈ ضروریات کو منتخب کریں۔
کلاڈ کو ماڈل فراہم کنندگان سے رابطہ کرنے، انحصار ڈاؤن لوڈ کرنے، یا کوڈ بازیافت کرنے کے لیے انٹرنیٹ تک رسائی کی ضرورت ہو سکتی ہے۔ ڈوکر کے نیٹ ورک کے پیش سیٹ اس بات کا تعین کرتے ہیں کہ سینڈ باکس کس چیز سے جڑ سکتا ہے۔
| پیش سیٹ | ابتدائی قوانین |
|---|---|
| کھلا | وسیع آؤٹ باؤنڈ نیٹ ورک تک رسائی |
| متوازن | عام ترقیاتی خدمات کی اجازت ہے، بشمول ماڈل APIs اور پیکیج رجسٹریاں۔ کسی بھی دوسری منزل کو مسترد کر دیا جائے گا۔ |
| مقفل | پیش سیٹ خود کسی بھی اہداف کو قبول نہیں کرتا ہے۔ آپ کو اپنے یا اپنے ایجنٹ کی ڈوکر کنفیگریشن میں الاؤنس شامل کرنا ہوگا۔ |
اگر آپ نئی انسٹالیشن کر رہے ہیں تو اپنے میک ٹرمینل سے بیلنسڈ کو دوبارہ ترتیب دیں۔
sbx policy init balanced
یہ پورے سینڈ باکس میں استعمال ہونے والے قواعد کو سیٹ کرتا ہے۔ اگر آپ پہلے سے ہی ایک پیش سیٹ منتخب کر چکے ہیں، تو آپ اسے پیش سیٹ رکھ سکتے ہیں۔ سینڈ باکس بنانے کے بعد، اپنے پروجیکٹ کے قواعد کا معائنہ کریں۔ ڈوکر کے ایجنٹ کی ترتیب قواعد کو شامل کر سکتی ہے، اور تنظیم کے زیر انتظام تنصیبات اضافی پابندیاں عائد کر سکتی ہیں۔ (مزید معلومات کے لیے، Docker’s network presets دستاویزات دیکھیں۔)
اپنے منصوبوں پر کلاڈ کے ساتھ شروع کریں۔
اپنے میک پر ٹرمینل کھولیں اور اپنے پروجیکٹ فولڈر میں تبدیل کریں۔ نیچے دیے گئے راستے کو اپنے پروجیکٹ کے مقام سے بدل دیں۔
cd /path/to/your/project
درج ذیل کمانڈز میں سے ایک کو منتخب کریں: دونوں ایک سینڈ باکس کا نام بتاتے ہیں۔ my-projectلہذا، صرف وہی کمانڈ استعمال کریں جو مطلوبہ موڈ سے مماثل ہوں۔
براہ راست موڈ کے لیے، جہاں کلاڈ کی ترامیم اس فولڈر میں فوری طور پر ظاہر ہوں گی:
sbx create --name my-project --skills=off claude .
کلون موڈ کے لیے، جہاں کلاڈ سینڈ باکس کے اندر ایک علیحدہ کاپی میں ترمیم کرتا ہے:
sbx create --name my-project --clone --skills=off claude .
نقل وضع کرنے کے لیے گٹ ریپوزٹری کی ضرورت ہوتی ہے۔ سینڈ باکس بنانے سے پہلے، اسٹارٹ اپ کوڈ کا ارتکاب کریں جس پر کلاڈ کام کرے گا۔ حتمی . ہر کمانڈ کے لیے، اس سے مراد پروجیکٹ فولڈر ہے جس میں ٹرمینل فی الحال واقع ہے۔ --clone کلون موڈ منتخب کریں۔ --skills=off یہ سینڈ باکس ڈوکر کے ایجنٹ کی ہدایات اور اسکرپٹ مشترکہ ذخیروں کے استعمال کو روکتا ہے۔
نام my-project اس سینڈ باکس کی شناخت کرتا ہے۔ آپ اسے بعد میں اپنے میک پر موجود کسی بھی ڈائرکٹری سے اس نام کا استعمال کرکے دوبارہ کھول سکتے ہیں۔ سینڈ باکس بناتے وقت، ڈائریکٹ یا کلون موڈ کا انتخاب کریں۔ کسی مختلف جھنڈے کے ساتھ دوبارہ جڑنے سے وہ موڈ تبدیل نہیں ہوگا۔ (مزید معلومات کے لیے، گٹ ورک فلوز کے لیے ڈاکر کی گائیڈ دیکھیں۔)
نیٹ ورک کے قوانین کو چیک کرنے کے بعد، کلاڈ شروع کریں.
sbx policy ls my-project --wide
sbx run --name my-project
آپ کا ٹرمینل اب سینڈ باکس کے اندر چل رہا کلاڈ کوڈ دکھائے گا۔ اگر آپ کلاڈ سبسکرپشن استعمال کر رہے ہیں تو درج کریں: /login کلاڈ کے لاگ ان پرامپٹس پر عمل کریں۔ داخل کریں /login کلاڈ میں، آپ کے میک کا شیل نہیں۔
اب آپ کلاڈ سے اپنے پروجیکٹ پر کام کرنے کو کہہ سکتے ہیں۔ چھوٹی تبدیلیوں کے ساتھ شروع کریں جس کے نتائج نظر آئیں گے۔ میرے تجربے کی طرح فلاسک ایپلیکیشن کے لیے، آپ استعمال کر سکتے ہیں:
Create a branch named sandbox/health-check. Add GET /health returning
{"status":"ok"}, write a test for it, and run the tests. Commit the changes
on that branch. Do not push to an external remote. Tell me which files
changed and whether the tests passed.
دوسرے پروجیکٹس کے لیے، اختتامی نقطہ کی کارروائیوں کو اپنی تبدیلیوں سے تبدیل کریں۔ نامزد شاخوں کو برقرار رکھیں اور جائزے کے لیے مخصوص نتائج حاصل کرنے کے لیے ٹیسٹ رن کی درخواست کریں۔
اسے استعمال کرنے سے پہلے اپنے کام کا جائزہ لیں۔
براہ راست موڈ میں، کلاڈ کام کرتے وقت اپنے میک پر اپنے پروجیکٹ کا معائنہ کریں۔ فائل میں تبدیلیاں پہلے سے موجود ہیں۔ مکمل ہونے کے بعد، اپنی تبدیلیوں کا جائزہ لیں اور ان کا معائنہ کریں۔ .git/hooks اس کی وجہ یہ ہے کہ تجربات سے معلوم ہوا ہے کہ کوڈ کے ساتھ ساتھ ریگولر ڈفس بھی مقامی ہکس سے محروم ہو سکتے ہیں۔
کلون موڈ میں، کلاڈ کی شاخ اس وقت تک سینڈ باکس کے اندر رہتی ہے جب تک کہ آپ اسے بازیافت نہیں کر لیتے۔ سینڈ باکس کو چلانا جاری رکھیں اور اصل پروجیکٹ فولڈر میں دوسرا میک ٹرمینل کھولیں۔ مندرجہ بالا مثال کے کام کے لیے، چلائیں:
git fetch sandbox-my-project sandbox/health-check
git diff --stat HEAD FETCH_HEAD
git diff HEAD FETCH_HEAD
ڈوکر گٹ ریموٹ نام تیار کرتا ہے۔ sandbox-my-project آپ سینڈ باکس سے کمٹ کھینچ سکتے ہیں۔ FETCH_HEAD اس کمٹ کی نشاندہی کرتا ہے جسے آپ نے ابھی ڈاؤن لوڈ کیا ہے۔ درآمد آپ کی کام کرنے والی فائلوں کو تبدیل نہیں کرتا ہے۔ اختلافات کو پڑھیں، پھر عام گٹ پروسیس کے ذریعے اپنے کام کی تصدیق یا انضمام کریں۔ اگر آپ ایک مختلف برانچ کا نام منتخب کرتے ہیں، تو اس نام کو fetch کمانڈ میں استعمال کریں۔ (مزید معلومات کے لیے، سینڈ باکس سے کاموں کو حاصل کرنے کے لیے ڈاکر کی گائیڈ دیکھیں۔)
کلون موڈ پروجیکٹ میں ترمیم کے لاگو ہونے سے پہلے ایک جائزہ مرحلہ فراہم کرتا ہے۔ تجویز کردہ کوڈ کو خاموشی سے چلانا محفوظ نہیں ہے۔ اپنے ایپلیکیشن کوڈ کے ساتھ اسکرپٹس اور دیگر ایگزیکیوٹیبل بنانے کے لیے تبدیلیوں کا جائزہ لیں۔
کلون موڈ آپ کو اصل پروجیکٹ فولڈر کو سینڈ باکس کے اندر سے پڑھنے کی اجازت دیتا ہے۔ اس میں وہ فائلیں شامل ہیں جنہیں Git نظر انداز کرتا ہے۔ کوئی راستہ نہیں .env لہذا، ڈیٹا بیس پاس ورڈز پر مشتمل فائلوں کو پڑھا جا سکتا ہے یہاں تک کہ اگر ان کا کبھی ارتکاب نہ کیا گیا ہو۔
Claude شروع کرنے سے پہلے، اس بات کو یقینی بنائیں کہ آپ کے پاس اپنی API کلید، ڈیٹا بیس پاس ورڈ، اور کوئی دوسری اسناد موجود ہیں جن کی آپ کو اپنے پروجیکٹ فولڈر میں کام کے لیے ضرورت نہیں ہے۔ فائل کو اس فولڈر سے باہر منتقل کریں جو آپ نے سینڈ باکس میں فراہم کیا ہے۔ .gitignore کنٹرول کرتا ہے کہ Git کن فائلوں کو نظر انداز کرتا ہے۔ یہ کلاڈ کو کتاب پڑھنے سے نہیں روکتا۔ (ماخذ: نقل کے موڈ میں فائل تک رسائی پر ڈاکر دستاویزات)
نیٹ ورک کے قوانین اس فیصلے کا ایک اور حصہ ہیں۔ میری جانچ میں ، ڈوکر نے درج ذیل درخواستوں کو مسدود کردیا: example.comتاہم، اس نے سرورز کی درخواستوں کی اجازت دی جس کی میں نے واضح طور پر اجازت دی تھی۔ اجازت دی گئی درخواستوں میں پروجیکٹ سے پڑھا جانے والا ڈیٹا شامل ہے۔ منزل کے اصول کنٹرول کرتے ہیں کہ Claude کہاں سے جڑتا ہے، نہ کہ Claude کون سا مواد منتقل کرتا ہے۔
اپنے سینڈ باکس میں مخصوص اہداف کو روکنے کے لیے، اپنے میک پر درج ذیل کمانڈ کو چلائیں:
sbx policy deny network --sandbox my-project example.com
sbx policy check network --sandbox my-project example.com
تبدیلی example.com اس شخص کے ساتھ جسے آپ بلاک کرنا چاہتے ہیں۔ استعمال کریں sbx policy log جب کوئی ڈاؤن لوڈ یا درخواست ناکام ہو جائے تو کنیکٹیویٹی کے فیصلوں کو چیک کریں۔ (مزید معلومات کے لیے، نیٹ ورک تک رسائی کو ترتیب دینے کے لیے ڈاکر گائیڈ دیکھیں۔)
ایپلیکیشن چلائیں اور اسے اپنے براؤزر میں کھولیں۔
کلاڈ سینڈ باکس کے اندر ڈوکر انجن کا استعمال کرتے ہوئے تصاویر بنا سکتا ہے اور کنٹینرز چلا سکتا ہے۔ یہ میک پر ڈوکر سے الگ ہے۔
میرے تجربات میں، ایپلیکیشن کنٹینرز سینڈ باکس کی ڈوکر لسٹ میں چلتے ہوئے نمودار ہوئے، میک کی ڈوکر لسٹ میں نہیں۔ یہ کلاڈ کو اپنے میک پر چلنے والے کنٹینرز پر کنٹرول دیئے بغیر ڈوکر کو ترقی کے لئے استعمال کرنے کی اجازت دیتا ہے۔ (ماخذ: ڈوکر انجن آئسولیشن پر ڈاکر دستاویزات)
ویب ایپلیکیشن دیکھنے کے لیے، کلاڈ سے اسے سینڈ باکس میں لانچ کرنے کو کہیں۔ 0.0.0.0:8000چلتے رہنے دو۔ پھر اپنے میک پر درج ذیل کو چلائیں:
sbx ports my-project --publish 8080:8000
open http://localhost:8080
یہ آپ کے میک پر موجود پورٹ 8080 کو آپ کے سینڈ باکس پر موجود پورٹ 8000 سے جوڑ دے گا۔ اگر آپ کی ایپ سینڈ باکس کے اندر ڈوکر کنٹینر میں چلتی ہے، تو Claude سے پہلے کنٹینر کی ایپ پورٹ کو سینڈ باکس کے پورٹ 8000 پر شائع کرنے کو کہیں۔
دو کنکشن ہیں: کنٹینر سے سینڈ باکس تک، اور پھر سینڈ باکس سے میک تک۔ (مزید معلومات کے لیے، سینڈ باکس کے اندر چلنے والی ایپلیکیشنز تک رسائی کے لیے ڈاکر کا گائیڈ دیکھیں۔)
کام کھونے کے بغیر سینڈ باکسنگ بند کریں۔
جب آپ کلاڈ کو چھوڑ دیتے ہیں تو سینڈ باکس حذف نہیں ہوتا ہے۔ وہ فائلیں، انسٹال کردہ سوفٹ ویئر، اور ڈوکر اسٹیٹ اسٹاپس اور دوبارہ شروع ہوتے ہیں۔ روکنے کے لیے، اپنے میک پر درج ذیل کو چلائیں:
sbx stop my-project
اسی تجربے کو بعد میں دوبارہ کھولنے کے لیے، ان ہدایات پر عمل کریں:
sbx run --name my-project
اگر آپ کو مزید ماحول کی ضرورت نہیں ہے تو اسے ہٹا دیں۔
sbx rm my-project
ہٹانے سے سینڈ باکس میں موجود نجی مواد حذف ہو جائے گا۔ سینڈ باکس کو ہٹانے سے پہلے، ریپلیکیشن موڈ برانچ کو درآمد کریں جسے آپ رکھنا چاہتے ہیں۔ ڈائریکٹ موڈ میں، آپ نے اپنے پروجیکٹ فولڈر میں جو بھی تبدیلیاں کی ہیں وہ آپ کے میک پر رہتی ہیں۔ سینڈ باکس کو ہٹانے سے کچھ بھی کالعدم نہیں ہوتا ہے۔ (مزید معلومات کے لیے، سینڈ باکس کے انتظام کے لیے ڈاکر گائیڈ دیکھیں۔)
نتیجہ
تجربات کے ذریعے، کلاڈ نے ظاہر کیا کہ وہ ہر کمانڈ کی منظوری کے لیے مجھ سے پوچھے بغیر ایپلی کیشن میں ترمیم، جانچ، اور چلا کر ترقیاتی کام کر سکتا ہے۔ ڈوکر سینڈ باکس نے اس کام کے لیے ایک الگ ماحول فراہم کیا، اور پروجیکٹ موڈ اور نیٹ ورک کے قوانین نے طے کیا کہ کلاڈ کس چیز تک رسائی حاصل کر سکتا ہے۔
اہم انتخاب یہ ہے کہ اگر آپ کلاڈ کی ترامیم کو اپنے پروجیکٹ میں لاگو کرنا چاہتے ہیں۔ براہ راست موڈ میں، یہ فوری طور پر ظاہر ہوتا ہے. کلون موڈ آپ کو ان کو لاگو کرنے سے پہلے پرعزم تبدیلیوں کا جائزہ لینے کی اجازت دیتا ہے۔ نہ ہی انتخاب پڑھنے کے قابل پروجیکٹ فائل کی اسناد کو نجی بناتا ہے۔
اب سینڈ باکس میں کلاڈ کو شروع کرنے، رسائی کو منتخب کرنے، ایپلیکیشن کو چلانے، اور کاموں کو بازیافت کرنے کے اقدامات ہیں۔ غیر حاضر آپریشن کے لیے، کلون موڈ استعمال کریں، پروجیکٹ فولڈر سے غیر ضروری اسناد کو ہٹا دیں، اور ان کو لاگو کرنے سے پہلے تبدیلیوں اور ٹیسٹ کے نتائج کا جائزہ لیں۔