برای دانلود بسته‌ها هنگام ساخت، از ورودی‌های پیش‌تعریف‌شدهٔ پروکسی Docker استفاده کنید و مسیر موقت را در ENV فایل Dockerfile ذخیره نکنید. یک فراخوانی 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 به‌طور پیش‌فرض این آرگومان‌های پروکسی را از مدیریت cache ساخت و docker history کنار می‌گذارد. ارجاع صریح به آن‌ها در Dockerfile این رفتار را تغییر می‌دهد؛ صرفاً به‌خاطر نمونهٔ دیگری از build argument اعلان اضافه نکنید.

فرایند همچنان مقدارها را دریافت می‌کند. URL احراز‌شده ممکن است از محیط چاپ‌شده، logها، پیکربندی کپی‌شده یا عملیات بعدی image نشت کند. ENV در Dockerfile مسیر را بخشی از محیط نهایی image می‌کند و ممکن است پروکسی مخصوص ساخت را به وابستگی هر کانتینر تبدیل کند.

وقتی فرمان به دادهٔ حساس نیاز دارد، secret mount در BuildKit رابط secret زمان ساخت را فراهم می‌کند. اعتبار را به همان عملیات محدود کنید؛ mount را چاپ نکنید و محتوایش را به لایهٔ image کپی نکنید.

این ورودی‌های ساخت نه pull قبلی registry توسط daemon را تنظیم می‌کنند و نه مسیر میزبان builder راه دورِ غیرقابل‌دسترسی را. بعداً image نهایی و پیکربندی برنامه را برای مقدارهای پایدار پروکسی بررسی کنید.

مقالات مرتبط