如何解决TeamCity 在群模式下运行时未连接到数据库
我正在尝试在 Docker Swarm 中运行 TeamCity,但它无法通过外部 AWS RDS Postgres 实例进行身份验证。对我来说奇怪的是,当以 docker-compose 运行时不会发生这个问题。我已经在本地和 AWS EC2 上运行它以仔细检查它是否与机器上发生的事情无关。两次我都得到相同的结果。
错误信息是:
无法连接到 PostgreSQL 服务器。 连接尝试失败。:org.postgresql.util.PSQLException:连接尝试失败。引起:java.net.UnknownHostException:rds_url.com
docker-compose.yaml:
version: "3"
services:
teamcity-server:
privileged: true
image: jetbrains/teamcity-server:2020.2.2
hostname: teamcity-server
ports:
- "8111:8111"
- "5432:5432"
volumes:
- ./data_dir:/data/teamcity_server/datadir
- ./log_dir:/opt/teamcity/logs
teamcity-agent:
privileged: true
image: jetbrains/teamcity-agent:2020.2.2
environment:
- SERVER_URL=http://teamcity-server:8111
- AGENT_NAME=regular_agent
- DOCKER_IN_DOCKER=start
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
teamcity-minimal-agent:
privileged: true
image: jetbrains/teamcity-minimal-agent:2020.2.2
environment:
- SERVER_URL=http://teamcity-server:8111
- AGENT_NAME=minimal_agent
- DOCKER_IN_DOCKER=start
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
解决方法
Talking with TeamCity support 我能够弄清楚。简而言之,我需要将 DNS 服务器设置为 VPC DNS 服务器。我还将网络模式设置为主机。
dns: 169.254.169.253
network_mode: host
在本地我从来没有解决过它。要访问我的 rds 服务器,我需要使用 VPN,而 docker swarm 无法在运行 vpn 的情况下解析 IP 地址。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。