gocd-docker
gocd-docker copied to clipboard
/etc/default/go-agent template is not replaced on run
For some reason we still have something like
GO_SERVER_URL=https://go-server:8154/go/
in /etc/default/go-agent
when the agent is started.
And so the supplied GO_SERVER_URL is not used but instead stays as go-server
.
The log shows confirms:
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 8
Starting Go Agent to connect to server go-server ...
[Wed Jan 11 10:59:31 UTC 2017] using default settings from /etc/default/go-agent
logFile Environment Variable= null
Logging to go-agent-bootstrapper.log
0 [TouchLoopThread-2] INFO com.thoughtworks.go.agent.launcher.Lockfile - Using lock file: /var/lib/go-agent/.agent-bootstrapper.running
Jan 11 10:59:31 gocd-agent-11-s7ma4 syslog-ng[15]: syslog-ng starting up; version='3.5.3'
493 [main] ERROR com.thoughtworks.go.agent.launcher.ServerBinaryDownloader - Couldn't update admin/agent-launcher.jar. Sleeping for 1m. Error:
java.net.UnknownHostException: go-server: Name or service not known
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:922)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1316)
at java.net.InetAddress.getAllByName0(InetAddress.java:1269)
at java.net.InetAddress.getAllByName(InetAddress.java:1185)
at java.net.InetAddress.getAllByName(InetAddress.java:1119)
at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:111)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
at com.thoughtworks.go.agent.launcher.ServerBinaryDownloader.fetchUpdateCheckHeaders(ServerBinaryDownloader.java:100)
at com.thoughtworks.go.agent.launcher.ServerBinaryDownloader.downloadIfNecessary(ServerBinaryDownloader.java:75)
at com.thoughtworks.go.agent.launcher.AgentLauncherImpl.launch(AgentLauncherImpl.java:78)
at com.thoughtworks.go.agent.bootstrapper.AgentBootstrapper.go(AgentBootstrapper.java:77)
at com.thoughtworks.go.agent.bootstrapper.AgentBootstrapper.main(AgentBootstrapper.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.simontuffs.onejar.Boot.run(Boot.java:306)
at com.simontuffs.onejar.Boot.main(Boot.java:159)
Somehow this line https://github.com/gocd/gocd-docker/blob/master/phusion/agent/go-agent-start.sh#L10 fails or is not run...
@ayoyoness: I had recently changed the part of the description which talks about how to start the agent and didn't check whether it was working. :(
Either of this should work:
docker run -ti --link container-id-of-go-server:go-server gocd/gocd-agent
OR:
docker run -ti -e GO_SERVER=hostname-of-go-server gocd/gocd-agent
Note that in the second form, it is expected that the server is at port 8154. I will be submitting a PR soon, to make the environment variable GO_SERVER_URL work.
Thanks!
Submitted a PR for this (#67). Changed description on DockerHub to show something which works for now.
/etc/default/go-agent is getting imported on run replacing the provided environment var GO_SERVER_URL with the one in it, so it results in GO_SERVER_URL = https://127.0.0.1:8154/go
@agalpin: Are you saying it's working fine now? Or not?
@arvindsv I had to manually remove the first line of /etc/default/go-agent which is GO_SERVER_URL=https://127.0.0.1:8154/go to make it work