Tenho o seguinte /etc/docker/daemon.json
arquivo:
$ yq . /etc/docker/daemon.json
{
"dns": [
"a.b.c.d1"
]
}
$
Tentei este comando para anexar linhas de proxy a este arquivo com 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..."
$
Eu também tentei este yq
comando:
$ 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 ()
$
Espero este 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"
}
}
Como posso fazer isso com yq
?
Aparentemente, você está usando mikefarah/yq , que requer que chaves de objeto sejam encapsuladas entre aspas (ao contrário de kislyuk/yq , por exemplo), então mude
proxies:
para"proxies":
para resolveError: 1:7: invalid input text "proxies: {\"ht..."
. Além disso,env
espera seu parâmetro sem um$
sinal. Então, como exemplo, isso funcionaria:Como alternativa, use a
.proxies =
sintaxe da sua segunda tentativa, que não requer aspas, mas, como expressão, precisa estar fora das chaves:Ambos os exemplos produzem (testados com mikefarah/yq v4.44.6):
Observação: se você não quiser que as variáveis de ambiente sejam analisadas como nós YAML, use
envstr
, que sempre analisa os valores como strings.