yq v4 کے ساتھ Docker daemon.json کے پراکسی فیلڈز میں ترمیم کریں
موجودہ daemon ترتیبات محفوظ رکھنے، پراکسی سٹرنگ داخل کرنے اور قابلِ جائزہ JSON امیدوار بنانے کے لیے Mike Farah کا yq v4 استعمال کریں۔
daemon.json فائل میں پہلے سے DNS، اسٹوریج یا لاگنگ کی ترتیبات ہو سکتی ہیں۔ پراکسی تبدیل کرتے وقت وہ کلیدیں محفوظ رہنی چاہئیں۔
Mike Farah کے yq v4 کے ساتھ ہر فیلڈ الگ تفویض کریں اور ایک الگ امیدوار لکھیں:
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.jsonHTTP پراکسی فہرست دونوں HTTP URL اقدار کے لیے امیدوار پیش کرتی ہے جب عوامی registry ٹریفک عوامی ثالث استعمال کر سکے؛ اندرونی بائی پاس برقرار رکھیں۔ strenv ہر قدر کو سٹرنگ کے طور پر پڑھتا ہے۔ env اس کے بجائے YAML اقدار تجزیہ کرتا ہے جو ان URL اور بائی پاس فیلڈز کے لیے غیر ضروری ہے۔ strenv کے اندر ماحولیاتی متغیر کے نام میں ڈالر کا سابقہ نہیں ہوتا۔
تین فیلڈز تفویض کرنے سے proxies کے دیگر ارکان اور غیر متعلق اعلیٰ سطحی ترتیبات بھی محفوظ رہتی ہیں۔ آپشن -o=json آؤٹ پٹ کو اسی فارمیٹ میں رکھتا ہے جس کی Docker توقع کرتا ہے۔ yq نامی دوسرے پروگرام کی اظہار کی زبان مختلف ہو سکتی ہے۔
مشین کے معمول کے کنفیگریشن عمل کے ذریعے فعال فائل تبدیل کرنے سے پہلے امیدوار کا جائزہ لیں۔ shell ری ڈائریکشن کے ساتھ سیدھا اِن پٹ میں واپس لکھنا yq کے پڑھنے سے پہلے ہی فائل کاٹ سکتا ہے۔
یہ ہائفن والے فیلڈ نام Docker Engine کے daemon کو کنفیگر کرتے ہیں۔ Docker Desktop اپنی پراکسی ترتیبات استعمال کرتا ہے، اور CLI کے کنٹینر ماحول پراکسی آبجیکٹ کی اسکیما الگ ہے۔