Docker-Proxy-Anmeldedaten: URL-Kodierung und systemd-Prozent-Escapes
Prozentkodieren Sie die Anmeldedaten-Komponenten des Proxys und erhalten Sie diese Prozentzeichen dann durch eine systemd-Environment-Zuweisung hindurch.
Ein Proxy-Benutzername im Domänenstil kann einen Backslash enthalten, und ein Passwort kann Zeichen enthalten, die die URI-Syntax reserviert. Kodieren Sie diese Anmeldedaten-Komponenten, wenn Sie die Proxy-URL aufbauen: Ein Backslash wird beispielsweise zu %5C.
Eine Environment-Zuweisung eines systemd-Dienstes bringt einen weiteren Parser ins Spiel. Wörtliche Prozentzeichen in der Unit-Konfiguration müssen verdoppelt werden:
[Service]
Environment="HTTPS_PROXY=http://DOMAIN%%5Cproxy-user:example%%[email protected]:8080"
Die beispielhaften Werte stehen für einen Domänen-Benutzernamen und ein Passwort mit #. systemd macht aus %% ein %, sodass dem Daemon die kodierte URL bleibt. Fügen Sie die entsprechende HTTP_PROXY-Zuweisung hinzu, wenn auch dieses Zielschema die Route braucht.
Das doppelte Prozent ist systemd-Syntax. Der Proxy-Wert in der daemon.json von Docker enthält dagegen die gewöhnlichen URI-Escapes wie %5C und %23. Übernehmen Sie die Schreibweise der Unit-Datei nicht unverändert in JSON oder in das Proxy-URL-Feld eines Clients.
Behalten Sie auch die konfigurierte Quelle im Blick. Docker dokumentiert, dass die Proxy-Konfiguration des Daemons Vorrang vor Proxy-Umgebungsvariablen hat; ein älterer JSON-Wert kann daher eine korrigierte Dienstumgebung verdecken.