The compose file references the image docker.internal:5000/caddy:latest
that does not exist publicly because the image was built using the provided caddy Dockerfile that compiles additional modules for caddy.
The configuration:
cap_add: - NET_ADMIN
specifies that caddy is able to run on privileged ports (required due to caddy being configured to be a front-facing reverse-proxy).
version: '3.7' services: caddy: image: docker.internal:5000/caddy:latest cap_add: - NET_ADMIN ports: - "80:80" - "443:443" - "443:443/udp" volumes: - /mnt/docker/data/caddy/etc/Caddyfile:/etc/caddy/Caddyfile - /mnt/docker/data/caddy/etc/auth:/etc/caddy/auth - /mnt/docker/data/caddy/site:/srv - /mnt/docker/data/caddy/data:/data - /mnt/docker/data/caddy/config:/config