I’m using the module nethserver-pihole made by @stephdl and it works like a charm.
Today, I’ve updated the docker container as I do regularly, but afterwards, pihole did not came up the way it used to do:
pihole statusreported the container in state
- WebUI showed in top-left status
"DNS service not running"
- Attaching to the container’s commandline to check and restart FTL inside the container did not work, either
Still inside the container’s bash, displaying the log file finally gave a hint:
tail -f /var/log/pihole-FTL.log [...snip...] [2022-03-26 09:34:53.421 11844M] -> Unique clients: 0 [2022-03-26 09:34:53.421 11844M] -> Known forward destinations: 0 [2022-03-26 09:34:53.421 11844M] Successfully accessed setupVars.conf [2022-03-26 09:34:53.423 11844M] FATAL ERROR in dnsmasq core: failed to create listening socket for port 53: Permission denied [2022-03-26 09:34:53.432 11844M] ########## FTL terminated after 57ms (code 1)! ##########
After some research, I’ve found out that there was an upstream change in Januar 2022 (Release 2022.01 · pi-hole/docker-pi-hole · GitHub) in regard to the user running FTL inside the container (formerly: root since 01/22: pihole)
I’ve borrowed a workaround from the following Github-Issue:
Docker on Synology keeps stopping with Failed to set capabilities for pihole-FTL. Cannot run as non-root. · Issue #963 · pi-hole/docker-pi-hole · GitHub
Summary: Add the variable
DNSMASQ_USER=root to the docker environment.
The following surely is not the best or most elegant way to achieve a running instance on Nethserver, but the only way I managed to think of in my need to get it up running again. @stephdl May it be possible that you include this change inside nethserver-pihole?
1. open the e-smith action file in an editor
2. insert the line
in each invocation of
3. save an force upgrade of pihole-container
4. watch it boot
[root@nethserver ~]# pihole bash root@pi:/# tail -f /var/log/pihole-FTL.log
Hopefully this helps in case of an “emergency”
However, I’m sure this cannot be the final solution for it!