From a1661fd876c5e196b38fa6732d09e475a910ddc9 Mon Sep 17 00:00:00 2001 From: Kenneth Fortner Date: Wed, 4 Nov 2020 16:51:50 -0600 Subject: [PATCH] Update systemd.md Systemctl requires different escape characters than a URL does so a proxy var with special URL characters needs to have them escaped with the hex equivalent and the systemctl escapes. A backslash in domain\user becomes domain%5Cuser but this breaks systemctl because of the % sign. If you need to use systemctl with a url and special chars is domain%%5Cuser (Notice the DOUBLE %). [Service] Environment="HTTP_PROXY=http://domain%%5Cuser:complex%%23pass@proxy.example.com:8080/" --- config/daemon/systemd.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/config/daemon/systemd.md b/config/daemon/systemd.md index 3748984f3e..e7a42095f8 100644 --- a/config/daemon/systemd.md +++ b/config/daemon/systemd.md @@ -111,6 +111,13 @@ you need to add this configuration in the Docker systemd service file. Environment="HTTP_PROXY=http://proxy.example.com:80" Environment="HTTPS_PROXY=https://proxy.example.com:443" ``` + + If you have to use special characters in the proxy value they must be both URL encoded and escape the % signs with double %%. + + ``` + [Service] + Environment="HTTP_PROXY=http://domain%%5Cuser:complex%%23pass@proxy.example.com:8080/" + ``` 3. If you have internal Docker registries that you need to contact without proxying you can specify them via the `NO_PROXY` environment variable. @@ -187,6 +194,13 @@ you need to add this configuration in the Docker systemd service file. Environment="HTTP_PROXY=http://proxy.example.com:80" Environment="HTTPS_PROXY=https://proxy.example.com:443" ``` + + If you have to use special characters in the proxy value they must be both URL encoded and escape the % signs with double %%. + + ``` + [Service] + Environment="HTTP_PROXY=http://domain%%5Cuser:complex%%23pass@proxy.example.com:8080/" + ``` 3. If you have internal Docker registries that you need to contact without proxying, you can specify them via the `NO_PROXY` environment variable.