barcus/bareos

Director Alpine:18 doesn't start due to wrong URL

Closed this issue · 3 comments

opelx commented

Hi,
I'm using the docker-compose with alpine:18 ( bareos/docker-compose-alpine-v2.yml ). Starting the director shows in the logs:

Waiting for mysqld...
Waiting for mysqld...
Waiting for mysqld...
Waiting for mysqld...
mysqld is alive
...mysqld is alive
Info: unable to get "dbname" from config, using default value "bareos". Check /tmp/bareos-config.37.log
Info: unable to get "dbuser" from config, using default value "bareos". Check /tmp/bareos-config.37.log
Info: unable to get "dbdriver" from config, this is usually not an error. Check /tmp/bareos-config.37.log
Creating mysql database
Creating of bareos database succeeded.
Info: unable to get "dbname" from config, using default value "bareos". Check /tmp/bareos-config.57.log
Info: unable to get "dbuser" from config, using default value "bareos". Check /tmp/bareos-config.57.log
Info: unable to get "dbdriver" from config, this is usually not an error. Check /tmp/bareos-config.57.log
Making mysql tables
Info: unable to get "dbpassword" from config, this is usually not an error. Check /tmp/bareos-config.57.log
Creation of Bareos MySQL tables succeeded.
bareos-dir: ERROR TERMINATION at lib/parse_conf.cc:268
Config error: Expected a Resource name identifier, got: <a
            : line 1, col 2 of file /etc/bareos/bareos-dir.d/profile/webui-admin.conf
<a href="/bareos/bareos/master/webui/install/bareos/bareos-dir.d/profile/webui-admin.conf">Moved Permanently</a>.

and there is really the raw copy and dir goes to fail at
'''bareos/director-mysql/18-alpine/docker-entrypoint.sh'''
and the file contents is indeed:

$ sudo cat /srv/docker/bareos/config/director/bareos-dir.d/profile/webui-admin.conf
<a href="/bareos/bareos/master/webui/install/bareos/bareos-dir.d/profile/webui-admin.conf">Moved Permanently</a>.

even I don't know how this can happen in detail - the URI are correct as far I've checked. Note, I use not the default '''/data''' prefix for the volumes.

opelx commented

Maybe my docker-compose changes became relevant:

   version: '3.7'
    services:
      bareos-dir:
        image: barcus/bareos-director:18-alpine
        volumes:
          - director_config:/etc/bareos
          - director_data:/var/lib/bareos # required for MyCatalog backup
        networks:
          - default
        environment:
          - DB_HOST=bareos-db
          - DB_PORT=3306
          - DB_PASSWORD=ThisIsMySecretDBp4ssw0rd
          - DB_NAME=bareos
          - DB_USER=root
          - BAREOS_SD_HOST=bareos-sd
          - BAREOS_SD_PASSWORD=ThisIsMySecretSDp4ssw0rd
          - BAREOS_FD_HOST=bareos-fd
          - BAREOS_FD_PASSWORD=ThisIsMySecretFDp4ssw0rd
          - BAREOS_WEBUI_PASSWORD=ThisIsMySecretUIp4ssw0rd
          - SMTP_HOST=smtpd
          - ADMIN_MAIL=bareos@home.lan
        depends_on:
          - bareos-db
      bareos-sd:
        image: barcus/bareos-storage:18-alpine
        ports:
          - 9103:9103
        networks:
          - default
        volumes:
          - storage_config:/etc/bareos
          - storage_data:/var/lib/bareos/archive
        environment:
          - BAREOS_SD_PASSWORD=ThisIsMySecretSDp4ssw0rd
      bareos-fd:
        image: barcus/bareos-client:18-alpine
        networks:
          - default
        volumes:
          - client_config:/etc/bareos
          - director_data:/var/lib/bareos-director # required for MyCatalog backup
        environment:
          - BAREOS_FD_PASSWORD=ThisIsMySecretFDp4ssw0rd
      bareos-webui:
        image: barcus/bareos-webui:18-alpine
        ports:
          - 9100:9100
        networks:
          - frontproxy_net
          - default
        environment:
          - BAREOS_DIR_HOST=bareos-dir
          - PHP_FPM_HOST=php-fpm
          - PHP_FPM_PORT=9000
          - VIRTUAL_HOST=bareos.home.lan,backup.home.lan
        volumes:
          - webui_config:/etc/bareos-webui
          - webui_data:/usr/share/bareos-webui
        depends_on:
          - php-fpm
      php-fpm:
        image: barcus/php-fpm-alpine
        networks:
          - default
        volumes:
          - webui_config:/etc/bareos-webui
          - webui_data:/usr/share/bareos-webui
      bareos-db:
        image: mysql:5.6
        networks:
          - default
        volumes:
          - mysql_data:/var/lib/mysql
        environment:
          - MYSQL_ROOT_PASSWORD=ThisIsMySecretDBp4ssw0rd
      smtpd:
        image: namshi/smtp
        networks:
          - default
    volumes:
      director_config:
        driver: local
        driver_opts:
          type: none
          o: 'bind'
          device: '/srv/docker/bareos/config/director'
      director_data:
        driver: local
        driver_opts:
          type: none
          o: 'bind'
          device: '/srv/docker/bareos/data/director'
      storage_config:
        driver: local
        driver_opts:
          type: none
          o: 'bind'
          device: '/srv/docker/bareos/config/storage'
      storage_data:
        driver: local
        driver_opts:
          type: none
          o: 'bind'
          device: '/srv/docker/bareos/data/storage'
      client_config:
        driver: local
        driver_opts:
          type: none
          o: 'bind'
          device: '/srv/docker/bareos/config/client'
      webui_config:
        driver: local
        driver_opts:
          type: none
          o: 'bind'
          device: '/srv/docker/bareos/config/webui'
      webui_data:
        driver: local
        driver_opts:
          type: none
          o: 'bind'
          device: '/srv/docker/bareos/data/webui'
      mysql_data:
        driver: local
        driver_opts:
          type: none
          o: 'bind'
          device: '/srv/docker/bareos/mysql/data'
    # jwilder/nginx-proxy
    networks:
      frontproxy_net:
        external: true

Maybe a feature request, the entrypoint.sh shall create the missing paths directly. I helped with these quick&dirty snippet:

    $ cat docker-compose.yml |grep 'device:' | sed -E -e '/^#/d' -e "s|[[:space:]]+device:[[:space:]]+(['/a-zA-Z]+)|sudo mkdir -p \1|g"
    sudo mkdir -p '/srv/docker/bareos/config/director'
    sudo mkdir -p '/srv/docker/bareos/data/director'
    sudo mkdir -p '/srv/docker/bareos/config/storage'
    sudo mkdir -p '/srv/docker/bareos/data/storage'
    sudo mkdir -p '/srv/docker/bareos/config/client'
    sudo mkdir -p '/srv/docker/bareos/config/webui'
    sudo mkdir -p '/srv/docker/bareos/data/webui'
    sudo mkdir -p '/srv/docker/bareos/mysql/data'

yes sure, good idea. I do something similar when i run docker-compose 👍

Thanks for the feedback @opelx
Should be fix soon !