Your compose differs in various aspects from the original suggestions
Specifically (but not limited to), you seem to mount single files where DHCP with docker-compose and bridge networking (as well as Pi-hole's sample configuration for a standard Pi-hole) would do so with directories. This may well be relevant if you'd want lease information to persist.
In addition, you seem to be doing so for non-standard Pi-hole files, e.g. 07-dhcp-options.conf
.
Other deviations would include, without being comprehensive (click for details):
I've found the following parts in your config to deviate just be diffing your compose against the original:
volumes:
pihole:
expose:
- 80
env_file:
- .env
networks:
front-tier: {}
I'd strongly recommend to work with Pi-hole's defaults and the suggested configuration as closely as possible, and then gradually adopt it to your requirements.