我有以下
/etc/docker/daemon.json
文件:
$ yq . /etc/docker/daemon.json
{
"dns": [
"a.b.c.d1"
]
}
$
我尝试使用此命令将代理行附加到此文件
yq
:
$ yq '. + { proxies : { "http-proxy":env($http_proxy) , "https-proxy":env($https_proxy) , "no-proxy":env($no_proxy)} }' /etc/docker/daemon.json
Error: 1:7: invalid input text "proxies : { \"ht..."
$
我也尝试过这个
yq
命令:
$ yq '. + { .proxies = { .http-proxy=env($http_proxy) , .https-proxy=env($https_proxy) , .no-proxy=env($no_proxy)} }' /etc/docker/daemon.json
Error: !!str () cannot be added to a !!map ()
$
我期待这个 json :
{
"dns": [
"a.b.c.d1"
],
"proxies": {
"http-proxy": "http://x.y.z.t:8080",
"https-proxy": "http://x.y.z.t:8080",
"no-proxy": "localhost,127.0.0.1,localaddress,.localdomain.com"
}
}
我怎样才能用
yq
做到这一点?
显然,您使用的是 mikefarah/yq,它要求对象键用引号引起来,因此将
proxies:
更改为 "proxies":
。此外, env
期望其参数不带 $
符号。因此,举个例子,这是有效的:
http_proxy=a https_proxy=b no_proxy=c yq -o=json '
. + {"proxies": {"http-proxy": env(http_proxy), "https-proxy": env(https_proxy), "no-proxy": env(no_proxy)}}
' /etc/docker/daemon.json
{
"dns": [
"a.b.c.d1"
],
"proxies": {
"http-proxy": "a",
"https-proxy": "b",
"no-proxy": "c"
}
}