barcus/bareos

Database can't initialize correctly

Closed this issue · 3 comments

Database can't initialize correctly :

Waiting for postgresql...
bareos_bareos-db_1:5432 - accepting connections
...postgresql is alive
Updating postgresql tables
Unable to determine version of Bareos postgresql database
Granting postgresql tables
Error creating privileges.
bareos-dir: dird/check_catalog.cc:64-0 Could not open Catalog "MyCatalog", database "bareos".
bareos-dir: dird/check_catalog.cc:71-0 Query failed: SELECT VersionId FROM Version: ERR=ERROR:  relation "version" does not exist
LINE 1: SELECT VersionId FROM Version
                              ^
bareos-dir ERROR TERMINATION

This is my docker-compose file :

services:
  bareos-dir:
    image: barcus/bareos-director:latest
    environment:
      - DB_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXX
      - DB_HOST=bareos_bareos-db_1
      - DB_PORT=5432
      - BAREOS_FD_HOST=bareos_bareos-fd_1
      - BAREOS_SD_HOST=bareos_bareos-sd_1
      - BAREOS_FD_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXX
      - BAREOS_SD_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXX
      - BAREOS_WEBUI_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXX
      - SMTP_HOST=bareos_smtpd_1
      - ADMIN_MAIL=XXXXXXXXXXXXXXXXXXXXXXXXXX
    volumes:
      - "/var/bareos/director/conf:/etc/bareos"
      - "/var/bareos/director/data:/var/lib/bareos"
    depends_on:
      - bareos-db

  bareos-sd:
    image: barcus/bareos-storage:latest
    ports:
      - 9103:9103
    environment:
      - BAREOS_SD_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXX
    volumes:
      - "/var/bareos/sd/conf:/etc/bareos"
      - "/var/bareos/sd/storage:/var/lib/bareos/storage"

  bareos-fd:
    image: barcus/bareos-client:latest
    environment:
      - BAREOS_FD_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXX
      - FORCE_ROOT=false
    volumes:
      - "/var/bareos/fd/conf:/etc/bareos"
      - "/var/bareos/fd/data:/var/lib/bareos-director"

  bareos-webui:
    image: barcus/bareos-webui:latest
    ports:
      - 8091:80
    environment:
      - BAREOS_DIR_HOST=bareos_bareos-dir_1

  bareos-db:
    image: postgres:9.3
    environment:
      - POSTGRES_USER=bareos
      - POSTGRES_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXX
    volumes:
      - "/var/bareos/database:/var/lib/postgresql"
 
  smtpd:
    image: namshi/smtp

Modified MyCatalog.conf because dbname and dbuser were empty :

  Name = MyCatalog
  dbdriver = "postgresql"
  # dbdriver = "postgresql"
  dbname = "bareos"
  dbaddress = "bareos_bareos-db_1"
  dbport = "5432"
  dbuser = "bareos"
  dbpassword = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
}

PostgreSQL databases status :

                              List of databases
   Name    | Owner  | Encoding |  Collate   |   Ctype    | Access privileges 
-----------+--------+----------+------------+------------+-------------------
 bareos    | bareos | UTF8     | en_US.utf8 | en_US.utf8 | 
 postgres  | bareos | UTF8     | en_US.utf8 | en_US.utf8 | 
 template0 | bareos | UTF8     | en_US.utf8 | en_US.utf8 | =c/bareos        +
           |        |          |            |            | bareos=CTc/bareos
 template1 | bareos | UTF8     | en_US.utf8 | en_US.utf8 | =c/bareos        +
           |        |          |            |            | bareos=CTc/bareos
(4 rows)

Seems to be linked to your compose file.
DB_NAME and DB_USER are missing in bareos-director.
Also hostname you use should be the service name in docker-compose to make it simple

I'm gonna check how to avoid trouble in case of DB_NAME and DB_USER missing with a default value
Finaly, don't forget to check last update of docker-compose file in the repo.

Indeed, adding DB_USER and DB_NAME as an environment variable for bareos-dir solved the problem.
These variables were not described in hub.docker.com/r/barcus/bareos-director.
Thanks for your help!

This is the first line of usage section, using .env file !

Declare environment variables or copy the .env.dist to .env and adjust its values.