【问题标题】:TeamCity not connecting to database while running in swarm modeTeamCity 在集群模式下运行时未连接到数据库
【发布时间】:2021-02-12 01:47:39
【问题描述】:

我正在尝试在 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"

【问题讨论】:

  • 这是来自 teamcity 安装的设置阶段,还是尝试使用现有配置?
  • 我都尝试过,但都失败了。

标签: postgresql docker teamcity swarm


【解决方案1】:

Talking with TeamCity support我能弄明白。简而言之,我需要将 DNS 服务器设置为 VPC DNS 服务器。我还将网络模式设置为主机。

dns: 169.254.169.253
network_mode: host

在本地我从来没有解决它。要访问我的 rds 服务器,我需要使用 VPN,而 docker swarm 无法在运行 vpn 的情况下解析 IP 地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-06
    • 2018-07-31
    • 1970-01-01
    • 2022-12-07
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多