使用 docker 安装 bamboo trial 并连接到本地主机上的 postgres 数据库时出现问题

problem installing bamboo trial using docker and connecting to the postgres database on localhost

我正在尝试 运行 bamboo-server 使用 docker 容器并将其连接到另一个容器上 运行ning 的 postgres 数据库。首先,我 运行 postgres 数据库并使用用户 postgres 和密码 postgres 创建一个名为 bamboo 的空数据库。

我运行从https://hub.docker.com/r/atlassian/bamboo

向运行 bamboo 服务器推荐了这个
$> docker volume create --name bambooVolume
$> docker run -v bambooVolume:/var/atlassian/application-data/bamboo --name="bamboo" -d -p 8085:8085 -p 54663:54663 atlassian/bamboo

然后我打开 localhost:8085 并生成一个许可证,然后我看到了这个错误

访问数据库时出错:org.postgresql.util.PSQLException:与 localhost:5432 的连接被拒绝。检查主机名和端口是否正确以及邮局主管是否正在接受 TCP/IP 连接。

有什么问题?


解决方案:

使用此 dokcer-compose yaml:

version: '2'
services:
 
  bamboo:
    image: atlassian/bamboo
    container_name: bamboo
    ports:
      - '54663:5436'
      - '8085:8085'
    networks:
      - bamboonet
    volumes:
      - bamboo-data:/var/atlassian/application-data/bamboo
    hostname: bamboo
    environment:
      CATALINA_OPTS: -Xms256m -Xmx1g
      BAMBOO_PROXY_NAME:
      BAMBOO_PROXY_PORT:
      BAMBOO_PROXY_SCHEME:
      BAMBOO_DELAYED_START:
    labels:
      com.blacklabelops.description: "Atlassian Bamboo"
      com.blacklabelops.service: "bamboo"
 
  db-bamboo:
    image: postgres
    container_name: postgres
    hostname: postgres
    networks:
      - bamboonet
    volumes:
      - bamboo-data-db:/var/lib/postgresql/data
    ports:
      - '5432:5432'
    environment:
      POSTGRES_PASSWORD: password
      POSTGRES_USER: bamboo
      POSTGRES_DB: bamboo
      POSTGRES_ENCODING: UTF8
      POSTGRES_COLLATE: C
      POSTGRES_COLLATE_TYPE: C
      PGDATA: /var/lib/postgresql/data/pgdata
    labels:
      com.blacklabelops.description: "PostgreSQL Database Server"
      com.blacklabelops.service: "postgresql"
 
volumes:
  bamboo-data:
    external: false
  bamboo-data-db:
    external: false
 
networks:
  bamboonet:
    driver: bridge

如果您没有设置 docker 的 network,它将默认使用 bridge 模式。

我认为问题是您可能使用 {containerName}:5432 而不是 JDBC 连接字符串中的 localhost:5432,因为 localhost 表示您的网站容器而不是真实计算机, 所以你不能通过那个连接到数据库。

jdbc:postgresql://bamboo-pg-db-container:5432/bamboo