Рэдагаванне праксі-палёў 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-праксі прапануе кандыдаты для двух значэнняў HTTP URL, калі публічны трафік registry можа ісці праз публічныя пасярэднікі; захавайце ўнутраныя выключэнні. strenv чытае кожнае значэнне як радок. env жа разбірае значэнні YAML, што для гэтых палёў URL і выключэнняў не патрэбна. Імя зменнай асяроддзя ўнутры strenv не мае прэфікса ў выглядзе долара.
Прызначэнне трох палёў захоўвае іншыя элементы proxies, а таксама незвязаныя налады верхняга ўзроўню. Опцыя -o=json пакідае выхад у фармаце, якога чакае Docker. Іншая праграма з назвай yq можа мець іншую мову выразаў.
Праверце кандыдат перад заменай актыўнага файла праз звычайны працэс канфігурацыі машыны. Запіс наўпрост уваход праз перанакіраванне абалонкі можа абразаць яго раней, чым yq прачытае.
Гэтыя назвы палёў з дэфісам наладжваюць daemon Docker Engine. Docker Desktop выкарыстоўвае ўласныя налады праксі, а аб'ект праксі асяроддзя кантэйнера ў CLI мае іншую схему.