Docker部署DocuSign E-Signature Java SDK的代理配置问题咨询
DocuSign E-Signature Java SDK Docker部署代理配置说明
代理读取范围说明
- DocuSign Java SDK所说的「自动读取系统代理」,本质是读取自身运行所在JVM环境的系统代理配置。在Docker部署架构下,SDK只会读取Docker容器内部的代理配置,和Linux宿主机的代理配置完全隔离,Docker默认不会同步宿主机的代理配置到容器内。
配置方案选择
无需修改代码的方案(优先选择)
如果你可以控制容器的构建或启动规则,直接通过注入配置的方式实现即可,不需要调整业务代码:
- 启动容器时注入标准代理环境变量:
HTTP_PROXY、HTTPS_PROXY、NO_PROXY,Java运行环境会自动识别这些变量,SDK即可正常走代理 - 也可以在容器启动Java应用时追加JVM参数指定代理:
java -Dhttp.proxyHost=代理地址 -Dhttp.proxyPort=代理端口 -Dhttps.proxyHost=代理地址 -Dhttps.proxyPort=代理端口 -jar 你的应用.jar
需要修改代码的方案
如果你没有容器配置的调整权限,才需要在代码中初始化SDK之前,手动设置JVM级别的代理参数,示例如下:
// 配置HTTP代理 System.setProperty("http.proxyHost", "你的代理地址"); System.setProperty("http.proxyPort", "代理端口"); // 配置HTTPS代理 System.setProperty("https.proxyHost", "你的代理地址"); System.setProperty("https.proxyPort", "代理端口"); // 配置不走代理的地址,按需添加 System.setProperty("http.nonProxyHosts", "localhost|*.内部域名.com"); // 若代理需要身份验证,补充以下配置 System.setProperty("http.proxyUser", "代理用户名"); System.setProperty("http.proxyPassword", "代理密码"); System.setProperty("https.proxyUser", "代理用户名"); System.setProperty("https.proxyPassword", "代理密码");
注意事项
- 容器和宿主机的网络命名空间相互独立,仅在宿主机配置代理不会对容器内运行的Java应用生效,必须在容器侧完成代理配置。
内容的提问来源于stack exchange,提问作者NoClue
相关产品推荐
相关产品推荐

