使用 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
我正在尝试 运行 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