Docker使用Team City Agent撰写DNS问题

我有以下docker-compose.yml文件,其中包含Team City Server和Agent,我想在使用Docker版本17.06.1-ce-win24(13025)的本地Win 10开发机器上运行:

version: '3.1' services: tc_server: image: jetbrains/teamcity-server:2017.1.2 ports: - 8111:8111 volumes: - teamcity_server:/data/teamcity_server/datadir - teamcity_server_logs:/opt/teamcity/logs tc_agent: image: jetbrains/teamcity-agent:2017.1.2 volumes: - /var/run/docker.sock:/var/run/docker.sock - teamcity_agent_conf:/data/teamcity_agent/conf environment: SERVER_URL: http://tc_server:8111 volumes: teamcity_server: teamcity_server_logs: teamcity_agent_conf: 

Team City Server和Agent启动,但在用户界面中看不到任何未经授权的代理。

我检查了docker日志:

 tc_agent_1 | [2017-09-02 10:47:27,548] WARN - buildServer.AGENT.registration - Error while asking server for the communication protocols via URL http://tc_server:8111/app/agents/protocols. Will try all protocols: java.net.ConnectException: Connection refused Connection refused) (enable debug to see stacktrace) tc_agent_1 | [2017-09-02 10:47:27,549] INFO - buildServer.AGENT.registration - Trying to register on server using 'polling' protocol. tc_agent_1 | [2017-09-02 10:47:27,570] INFO - buildServer.AGENT.registration - Registration using 'polling' protocol failed: java.net.ConnectException: Connection refused (Connection refused) (enable debug to see stacktrace) tc_agent_1 | [2017-09-02 10:47:27,570] INFO - buildServer.AGENT.registration - Trying to register on server using 'xml-rpc' protocol. tc_agent_1 | [2017-09-02 10:47:27,581] INFO - buildServer.AGENT.registration - Registration using 'xml-rpc' protocol failed: java.net.ConnectException: Connection refused (Connection refused) (enable debug to see stacktrace) tc_agent_1 | [2017-09-02 10:47:27,581] WARN - buildServer.AGENT.registration - Error registering on the server via URL http://tc_server:8111. Will continue repeating connection attempts. 

它看起来像代理无法连接到服务器,但运行此命令显示代理容器可以parsing并从TC服务器容器检索(与日志警告相矛盾):

 docker-compose exec tc_agent curl http://tc_server:8111/app/agents/protocols <list><string>polling</string></list> 

我尝试从Docker-compose.yml文件中删除代理,并使用Docker单独展开(tc_default是容器正在使用的networking):

 docker run --rm --network tc_default -e SERVER_URL=http://tc_server:8111 jetbrains/teamcity-agent:2017.1.2 

这给出了以前在日志中find的相同的错误。 所以我采取了使用服务器的IP地址:

 docker run --rm --network tc_default -e SERVER_URL=http://172.18.0.3:8111 jetbrains/teamcity-agent:2017.1.2 

这个工作 ,代理出现在团队城市未授权代理列表。

这是代理的DNS问题还是我错误地使用docker-composenetworking? 如果可能,我宁愿将服务器和代理保存在一个Docker-compose文件中。

删除_forms的服务名称,它应该工作。 我最近在使用http://service_name:port时无法看到python中的问题。 但是使用http://servername:port工作

尽pipe在许多图书馆和地方,它依然不起作用

您的tc_server需要在代理之前启动。 在tc_agent服务configuration中添加以下内容,以确保启动顺序:

 depends_on: - tc_server