Pi-Hole with ovpn and caddy (docker-compose)

I have run into an issue with a docker-compose file. I want to run a docker container that uses caddy as a proxy and the openvpn is using pihole as dns ad blocking.

services:

  caddy:
    image: "wemakeservices/caddy-docker:latest"
    ports:
      - "2015:2015"
      - "80:80"
      - "443:443"
    depends_on:
      - openvpn
      - pihole
    
  openvpn:
    image: kylemanna/openvpn:latest
    container_name: openvpn
    cap_add:
     - NET_ADMIN
    ports:
     - "1194:1194/udp"
    restart: always
    volumes:
     - ./openvpn-data/conf:/etc/openvpn

  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    environment:
      TZ: 'Canada/Eastern'
    volumes:
       - './etc-pihole/:/etc/pihole/'
       - './etc-dnsmasq.d/:/etc/dnsmasq.d/'
    dns:
      - 127.0.0.1
      - 1.1.1.1
    cap_add:
      - NET_ADMIN
    restart: unless-stopped
    network_mode: "host"

The error I am getting is that pi-hole isn't able to add a listening socket to port 53. I have killed all processes on port 53 and don't even have port 53 listed in the docker-compose file. What am I missing? Is it a misunderstanding?

Is this on ubuntu or some other OS? The ubuntu port-53-conflict avoidance section of the readme was recently updated : GitHub - pi-hole/docker-pi-hole: Pi-hole in a docker container

Having network_mode: “host” makes it so you don't have to list the ports, the container automatically tries to connect up to your host ip.