Docker-proxyuppgifter: URL-kodning och systemd-procentescapes
Procentkoda proxyuppgifternas komponenter och bevara sedan dessa procenttecken genom en systemd Environment-tilldelning.
Ett proxyanvändarnamn i domänstil kan innehålla ett omvänt snedstreck, och ett lösenord kan innehålla tecken som URI-syntaxen reserverar. När du bygger proxy-URL:en, koda dessa uppgiftskomponenter: ett omvänt snedstreck blir till exempel %5C.
En Environment-tilldelning i en systemd-tjänst lägger till ytterligare en parser. Bokstavliga procenttecken i unit-konfigurationen måste dubbleras:
[Service]
Environment="HTTPS_PROXY=http://DOMAIN%%5Cproxy-user:example%%[email protected]:8080"
De illustrativa värdena representerar ett domänanvändarnamn och ett lösenord som innehåller #. systemd gör om %% till %, så den kodade URL:en blir kvar åt daemonen. Lägg till motsvarande HTTP_PROXY-tilldelning om det målschemat också behöver vägen.
Det dubbla procenttecknet är systemd-syntax. Docker:s daemon.json-proxyvärde innehåller i stället de vanliga URI-escapena, som %5C och %23. Kopiera inte unit-filens stavning oförändrad till JSON eller till ett klients proxy-URL-fält.
Håll också den konfigurerade källan i sikte. Docker dokumenterar att daemonens proxykonfiguration har företräde framför proxy-miljövariabler; ett äldre JSON-värde kan därför dölja en korrigerad tjänstemiljö.