gocd-docker icon indicating copy to clipboard operation
gocd-docker copied to clipboard

/etc/default/go-agent template is not replaced on run

Open ayoyoness opened this issue 8 years ago • 5 comments

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 avatar Jan 11 '17 11:01 ayoyoness

@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!

arvindsv avatar Jan 12 '17 14:01 arvindsv

Submitted a PR for this (#67). Changed description on DockerHub to show something which works for now.

arvindsv avatar Jan 12 '17 15:01 arvindsv

/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

AtomiclyCursed avatar Feb 13 '17 22:02 AtomiclyCursed

@agalpin: Are you saying it's working fine now? Or not?

arvindsv avatar Feb 13 '17 23:02 arvindsv

@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

AtomiclyCursed avatar Feb 14 '17 02:02 AtomiclyCursed