Mga kredensyal ng Docker proxy: pag-encode ng URL at mga percent escape ng systemd
I-percent-encode ang mga bahagi ng kredensyal ng proxy, pagkatapos ay panatilihin ang mga percent na tandang iyon sa pamamagitan ng Environment assignment ng systemd.
Ang username ng proxy sa istilong domain ay maaaring maglaman ng backslash, at ang password ay maaaring maglaman ng mga character na inireserba ng sintaks ng URI. Kapag binubuo ang proxy URL, i-encode ang mga bahaging iyon ng kredensyal: ang backslash ay nagiging %5C, halimbawa.
Ang Environment assignment sa isang serbisyo ng systemd ay nagdadagdag ng isa pang parser. Ang mga literal na percent sign sa unit configuration ay kailangang doblehin:
[Service]
Environment="HTTPS_PROXY=http://DOMAIN%%5Cproxy-user:example%%[email protected]:8080"
Ang mga halimbawang halaga ay kumakatawan sa isang domain username at isang password na naglalaman ng #. Ginagawang % ng systemd ang %%, kaya naiiwan ang naka-encode na URL sa daemon. Idagdag ang katumbas na HTTP_PROXY assignment kung kailangan din ng rutang iyon ang destinasyong scheme.
Ang dobleng percent ay sintaks ng systemd. Sa halip, ang proxy value sa daemon.json ng Docker ay naglalaman ng mga ordinaryong URI escape, tulad ng %5C at %23. Huwag kopyahin ang ispeling sa unit file nang walang pagbabago papunta sa JSON o sa field ng proxy URL ng isang client.
Panatilihin ding nakikita ang naka-configure na pinagmulan. Idinodokumento ng Docker na ang proxy configuration ng daemon ay may prayoridad kaysa sa mga proxy environment variable; kaya ang isang lumang JSON value ay maaaring magtago ng naitamang service environment.