TeamCity构建代理:通过URL在服务器上注册时出错

12

我正在尝试将一个使用Docker的构建代理连接到我的TeamCity服务器。我执行了这个命令:

docker run -it -e SERVER_URL="xxxx:8111" jetbrains/teamcity-agent

它尝试设置所有内容,但返回以下错误:

[2019-08-12 11:02:45,218]   WARN - buildServer.AGENT.registration - 
Error while asking server for the communication prot
ocols via URL http://xxxx:8111/app/agents/protocols. Will try 
later: java.net.ConnectException: Connection timed
out: connect (enable debug to see stacktrace)
[2019-08-12 11:02:45,218]   WARN - buildServer.AGENT.registration - 
 Error registering on the server via URL http://xxxx:8111. Will continue repeating connection attempts.
2个回答

6
Docker link是帮助我的解决方案:
--link  Add link to another container

这不是推荐的方法,我们需要使用端口。但这是一个快速让它运行起来的方式。

我的TeamCity Docker服务器名称标签为:teamcity-server-instance
因此,我必须将其传递给--link标志:

--link teamcity-server-instance

这是我用Docker运行设置代理的命令:

docker run -d -e SERVER_URL="http://teamcity-server-instance:8111" --link teamcity-server-instance -v <local_volume_mount>:/data/teamcity_agent/conf jetbrains/teamcity-agent

4
使用 docker network 命令为运行 Teamcity 服务器和代理容器创建桥接网络。这样,您就可以避免使用 link 命令。
创建网络。
sudo docker network create teamcity

运行 TeamCity 服务器。
sudo docker run -u 0 -it --name teamcity-server-instance -p 8111:8111 --network teamcity jetbrains/teamcity-server

运行TeamCity代理。
sudo docker run -u 0 -it --name teamcity-agent -e SERVER_URL="http://teamcity-server-instance:8111"  --network teamcity jetbrains/teamcity-agent

它将能够与容器名称连接,没有任何问题。
谢谢。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接