You’re using relative paths in your volumes:
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
When using compose from the command line, these volumes would be mounted as bind mounts with relative paths to where you ran the docker compose up
command - for example, if you were in /tmp/pihole
they would be at /tmp/pihole/etc-pihole
and /tmp/pihole/etc-dnsmasq.d
. In Portainer, because we run the compose commands from within the Portainer container’s file system rather than on the host environment, the relative path is relative to the Portainer container’s file system.
If these file paths exist on your host filesystem, you could change the relative paths to absolute paths instead:
volumes:
- /path/to/etc-pihole:/etc/pihole
- /path/to/etc-dnsmasq.d:/etc/dnsmasq.d
Or, if they don’t exist and are populated by the container image on first deploy, you could create them as named volumes:
services:
pihole:
...
volumes:
- etc-pihole:/etc/pihole
- etc-dnsmasq.d:/etc/dnsmasq.d
volumes:
etc-pihole:
etc-dnsmasq.d:
Your method will depend on your requirements and what the image itself expects and provides.
On that page, we mention:
We plan to have a process for you to renew your license with us before the licenses reach expiry. We are still determining exactly what this process will look like, but the intent is for this license is that it can be renewed at no cost.