Search code examples
postgresqldockerbamboo

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


I am trying to run bamboo-server using a docker container and connect it to postgres db that is running on another container. First I run the postgres db and create an empty database named bamboo with a user postgres and password postgres.

And I run this commend to run bamboo server from https://hub.docker.com/r/atlassian/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

Then I open localhost:8085 and generate a license and reach the point that I see this error

Error accessing database: org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

enter image description here

What is the problem?


SOLUTION:

Worked with this 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

Solution

  • If you don't set network of your docker it will be used bridge mode as default.

    I think the problem is you might use {containerName}:5432 instead of localhost:5432 from your JDBC connection string, because localhost mean your container of website instead of real computer, so that you can't connect to DB by that.

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