我正在Ubuntu机器上安装一个现代GoCD(16.7)。openjdk-8(jre和jdk)。代理(在本地主机上)无法连接到服务器:
[Sat Jul 30 05:58:47 UTC 2016] Starting Go Agent Bootstrapper with command:
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
-jar /usr/share/go-agent3/agent-bootstrapper.jar
-serverUrl https://127.0.0.1:8154/go/
...
java.lang.Exception: Couldn't access Go Server with base url:
https://127.0.0.1:8154/go/admin/agent-launcher.jar:
java.net.SocketException: Broken pipe
at com.thoughtworks.go.agent.launcher.ServerCall.invoke(ServerCall.java:78)
和
2016-07-30 06:00:48,790 [main ] ERROR go.agent.launcher.ServerBinaryDownloader:118
- Couldn't update admin/agent-launcher.jar. Sleeping for 1m.
Error: java.lang.Exception: Couldn't access Go Server with base url:
https://127.0.0.1:8154/go/admin/agent-launcher.jar:
java.net.SocketException: Broken pipe
(为了可读性,我手动包装了这些行)
服务器实际上是可访问的。例如:
$ curl --silent --insecure https://127.0.0.1:8154/go/ | head -2
<!-- *************************GO-LICENSE-START******************************
* Copyright 2014 ThoughtWorks, Inc.
是的,我使用的是--insecure
,但gocd附带了一个自签名证书。这是标准做法。我看到的一些东西说"哦,你正在阻塞你的端口",但这是对localhost的。
GOCD服务器和代理是否使用相同版本的Java?我们发现它们必须相同,因为证书必须匹配。参见聊天