تحرير حقول الوكيل في Docker daemon.json باستخدام yq v4
استخدم yq v4 من Mike Farah للحفاظ على إعدادات daemon الحالية وإدراج سلاسل الوكيل وإنتاج ملف JSON مرشح قابل للمراجعة.
قد يحتوي ملف daemon.json مسبقًا على إعدادات DNS أو التخزين أو السجلات. وعند تغيير الوكيل ينبغي الإبقاء على تلك المفاتيح.
مع yq v4 من Mike Farah، عيّن الحقول واحدًا واحدًا واكتب مرشحًا منفصلًا:
http_proxy='http://proxy.example:8080' \
https_proxy='http://proxy.example:8080' \
no_proxy='localhost,127.0.0.1,.internal.example' \
yq -o=json '
.proxies."http-proxy" = strenv(http_proxy) |
.proxies."https-proxy" = strenv(https_proxy) |
.proxies."no-proxy" = strenv(no_proxy)
' /etc/docker/daemon.json > daemon.proxy-candidate.jsonتوفّر قائمة وكلاء HTTP مرشحين لقيمتي عنوان URL الخاصين بـHTTP عندما يُحتمل أن تستخدم حركة registry العامة وسطاء عامين؛ فأبقِ على مسارات التجاوز الداخلية. يقرأ strenv كل قيمة كسلسلة نصية. أما env فيحلّل قيم YAML، وهذا غير ضروري لحقول URL والتجاوز هذه. ولا يحمل اسم متغير البيئة داخل strenv بادئة دولار.
تعيين ثلاثة حقول يحافظ على بقية أعضاء proxies وعلى الإعدادات العلوية غير ذات الصلة. ويُبقي خيار -o=json المخرجات بالتنسيق الذي يتوقعه Docker. وقد يكون لبرنامج آخر يُسمى yq لغة تعبير مختلفة.
راجع المرشح قبل استبدال الملف النشط عبر عملية الإعداد المعتادة على الجهاز. فإعادة الكتابة مباشرة إلى ملف الإدخال عبر إعادة توجيه الصدفة قد تقتطعه قبل أن يقرأه yq.
أسماء الحقول هذه، ذات الشرطات، تهيّئ خدمة daemon في Docker Engine. ويستخدم Docker Desktop إعدادات وكيل خاصة به، بينما يملك كائن الوكيل لبيئة الحاويات في سطر الأوامر مخططًا آخر.