Skip to content

PiHole on docker using networked (CIFS) volumes fails to initialize the gravity DB #750

@katbyte

Description

@katbyte

Versions

  • Pi-hole v5.2.2
  • Web Interface v5.2.2
  • FTL v5.3.4

Platform

Debian 8.3/linux 3.19 (intel NUC)

Docker 20 with docker-compose 1.21

Expected behavior

PiHole to correct initialize and persist querylog/data and be able to manage lists

Actual behavior / bug

The server boots up and filters, however i cannot manage lists, and if i restart the container queries are not persisted.

The docker volumes are on a network CIFS mount, if i move to a path on the local server everything works as expected. Other containers are using these mounts just fine.

The following can be found in the startup log:

pihole      | chown: cannot access '': No such file or directory
pihole      | chmod: cannot access '': No such file or directory
pihole      | chown: cannot access '/etc/pihole/dhcp.leases': No such file or directory
...
::: Docker start setup complete
pihole      |   [i] Creating new gravity database
pihole      | Error: near line 190: database is locked
pihole      | Error: no such table: info
pihole      |   [i] Migrating content of /etc/pihole/adlists.list into new database
pihole      |
pihole      |   [✗] Unable to fill table adlist in database /etc/pihole/gravity.db
pihole      |   CREATE TABLE adlist(...) failed: duplicate column name: 1

and when navigating to the groups page

DataTables warning: table id=groupsTable - Ajax error. For more information about this error, please see http://datatables.net/tn/7

Steps to reproduce

A host CIFS mount:

//x.x.x.x/nuc/docker on /mnt/data/docker type cifs (rw,relatime,vers=3.0,cache=strict,username=nuc,uid=1001,forceuid,gid=1001,forcegid,addr=x.x.x.x,file_mode=0755,dir_mode=0755,soft,nounix,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)

And then pihole defined in a docker container such as:

  pihole:
    container_name: pihole
    image: pihole/pihole:v5.3.4
    hostname: nuc
    ports:
      - '53:53/tcp'
      - '53:53/udp'
      - '8080:80'
      - '8433:443'
    restart: unless-stopped
    volumes:
      - /mnt/data/docker/dns/pihole/pi:/etc/pihole
      - /mnt/data/docker/dns/pihole/dnsmasq:/etc/dnsmasq.d
    environment:
      - ServerIP=10.0.0.2
      - TZ="America/Vancouver"
      - WEBPASSWORD=docker
      - DNS1=10.0.0.2#553
    depends_on:
      - bind

and then docker-compose

Debug Token

Screenshots

Additional context

inspection of docker mounts:

"Mounts": [
        {
            "Destination": "/etc/pihole",
            "Mode": "rw",
            "Propagation": "rprivate",
            "RW": true,
            "Source": "/mnt/data/docker/dns/pihole/pi",
            "Type": "bind"
        },
        {
            "Destination": "/etc/dnsmasq.d",
            "Mode": "rw",
            "Propagation": "rprivate",
            "RW": true,
            "Source": "/mnt/data/docker/dns/pihole/dnsmasq",
            "Type": "bind"
        }
    ],

and mount from container

//x.x.x.x/nuc/docker on /etc/pihole type cifs (rw,relatime,vers=3.0,cache=strict,username=nuc,uid=1001,forceuid,gid=1001,forcegid,addr=x.x.x.x,file_mode=0755,dir_mode=0755,soft,nounix,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    never-staleUse this label to ensure the stale action does not close this issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions