بلڈ کے وقت کے پراکسی اسناد کو Docker امیجز سے باہر رکھیں
Docker کے پہلے سے متعین بلڈ پراکسی ان پٹس کو سوچ سمجھ کر استعمال کریں اور عارضی پراکسی رازوں کو امیج کی مستقل ماحول قدروں میں نہ بدلیں۔
بلڈ کے دوران پیکجز ڈاؤن لوڈ کرنے کے لیے Docker کی پہلے سے متعین پراکسی بلڈ ان پٹس استعمال کریں، بجائے اس کے کہ Dockerfile کے ENV میں کوئی عارضی راستہ محفوظ کریں۔ POSIX استدعا یہ فراہم کر سکتی ہے:
HTTP_PROXY=http://203.0.113.10:8080 \
HTTPS_PROXY=http://203.0.113.10:8080 \
docker build --build-arg HTTP_PROXY --build-arg HTTPS_PROXY .دستاویزات کے اینڈ پوائنٹ کو بدلیں۔ --build-arg ناموں کے بعد قدریں چھوڑنے پر وہ اس استدعا کے ماحول سے لی جاتی ہیں۔ ان پہلے سے متعین ان پٹس کے لیے متعلقہ ARG اعلانات درکار نہیں ہیں۔
Docker بطور طے شدہ ان پراکسی دلائل کو بلڈ کیشے کی کارروائی اور docker history سے خارج رکھتا ہے۔ Dockerfile میں ان کا واضح حوالہ دینے سے یہ رویہ بدل جاتا ہے، اس لیے محض اس لیے اعلانات نہ شامل کریں کہ بلڈ دلیل کی کوئی اور مثال ایسا کرتی ہے۔
عمل کو قدریں پھر بھی ملتی ہیں۔ تصدیق شدہ URL پرنٹ شدہ ماحول، لاگز، کاپی شدہ کنفیگ یا بعد کی امیج کارروائیوں کے ذریعے باہر نکل سکتا ہے، چاہے تاریخ کا کوئی ایک منظر اسے نہ دکھائے۔ Dockerfile کا ENV راستے کو حتمی امیج کے ماحول کا حصہ بناتا ہے اور صرف بلڈ کے لیے استعمال ہونے والے پراکسی کو ہر کنٹینر کا انحصار بنا سکتا ہے۔
جب کسی کمانڈ کو حساس مواد درکار ہو تو BuildKit سیکرٹ ماؤنٹس بلڈ کے وقت راز کے لیے انٹرفیس فراہم کرتے ہیں۔ اسناد کو اسی کارروائی تک محدود رکھیں؛ ماؤنٹ پرنٹ نہ کریں اور اس کے مندرجات کو امیج کی پرت میں کاپی نہ کریں۔
یہ بلڈ ان پٹس نہ ڈیمون کے پہلے رجسٹری پل کو کنفیگر کرتے ہیں اور نہ ناقابل رسائی ریموٹ بلڈر کے ہوسٹ راستے کو۔ اس کے بعد ہر کاپی ہٹا دیے جانے کا فرض کرنے کے بجائے مطلوبہ حتمی امیج اور ایپلیکیشن کنفیگ میں مستقل پراکسی قدریں دیکھیں۔