2017-10-12 190 views
1

当试图在Docker中运行Boot时,使用adzerk/boot-clj映像,我收到连接拒绝错误。Boot-clj连接被拒绝

具体而言,当容器启动时,启动引导,然后输出堆栈跟踪。跟踪(在不连通的计算机之间不容易复制和粘贴)基本上与下载相关 - https://github.com/boot-clj/boot/releases/download/2.7.2/boot.jar - 接收“连接被拒绝”错误。

我在问,并回答这个问题,希望它可以帮助别人。

+1

尽管它很好,甚至鼓励回答你自己的问题,你应该清楚地说明你的问题,并添加有用的答案,而不用“嗯......”和其他绒毛。 – svgrafov

回答

0

从哪里开始?

我的主要问题是Docker + Clojure + Boot设置,特别是从容器内部运行“boot”时。这样做会产生堆栈跟踪。这是我的旅程开始的地方。

我正在使用adzerk/boot-clj图像。我在本地使用它(OSX)没有问题,我遇到的问题是使用托管在公司数据中心内的VM(CentOS 7)。

docker run -ti adzerk/boot-clj 

发行此启动容器,进入点在启动,并开始从GitHub拉低一些罐子,特别是boot.jar。得到的堆栈跟踪细节的几个问题,但问题的症结所在是

“java.net.ConnectException: Connection refused” (connecting to Clojars.org:443) 

嗯...

所以不是运行Boot容器马上,我指定的容器入口点为“—-entrypoint bash”所以我可以刺激一点。

所以,wget - 连接被拒绝。

没有Docker的情况下怎么样。一样。拒绝连接。

经过与网络团队的小小争论后,我发现需要在CentOS上设置“https_proxy”env变量来将流量路由到互联网。这是一个非常具体的问题。

然而......。

wget现在很好,无论是在主机上,还是在adzerk/boot-clj容器中。然而,启动不是。为了更加简化事情,我将Docker完全排除在等式之外,并在本地使用引导。

安装了java-1.8.0-openjdk.x86_64,安装了Boot。同样的问题。

所以周围一点点挖,发现这一点 - HTTPS://github.com/boot-clj/boot-bin/issues/2

这是一个开始。它提到了设置BOOT_JVM_OPTIONS,特别是https.proxyHost和https.proxyPort。

它仍然没有工作... Arrrg。

好的,让我们把Boot从等式中拿出来。

我写了一个Java测试工具,非常简单,它连接到https://clojars.org并尝试读取索引页。从https://docs.oracle.com/javase/tutorial/networking/urls/readingWriting.html复制并设置JVM_OPTS。

它仍然失败。 “连接被拒绝”

...。怪异的胡子。

我终于偶然发现这个SO - HTTPS://stackoverflow.com/questions/43695299/java-httpurlconnection-works-on-windows-and-fails-on-linux - 特别是从斯蒂芬ç

答案“

”Java不一定尊重您系统的默认代理设置。由于您可以在Linux机器上“卷曲”URL,因此最可能的解释是Java不使用您配置的代理。以下链接解释了配置Java代理的各种方法:“

因此,采取第一个链接 - https://stackoverflow.com/questions/120797/how-do-i-set-the-proxy-to -be使用的,由这JVM - 和莱昂内尔

我发出“java -Dhttps.proxyHost=xxx -Dhttps.proxyPort=80 HelloWorld

的答案,我得到一个错误,但不同的一个。这是进步。 “无法通过代理隧道”

快速谷歌这导致我在这里:http://www.oracle.com/technetwork/java/javase/8u111-relnotes-3124969.html - “禁用基本身份验证的HTTPS隧道”

所以更新为“java -Dhttps.proxyHost=xxx -Dhttps.proxyPort=80 -Djdk.http.auth.tunneling.disabledSchemes=“” HelloWorld

利润。

信息:

java -v 
openjdk version 1.8.0_144 
Openjdk Runtime Environment (build 1.8.0_144-b01) 
OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode) 

对不起,我所有的亵渎启动。

+0

P.S我不得不在协议和链接之间留出一个空格,因为不会让我发布超过2个链接的代表。低于10! – pjullah