I’ve got both Heimdall and Pi-Hole running in docker. They both work fine, but I’d like to get the Pi-Hole advanced statistics in Heimdall. The others, I just put on the bridge network, but I’m not sure I can have the Pi-Hole on bridge and the macvlan network. Is that possible, or is there a better way to accomplish this?

  • Fenzik@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    Why not? You can just connect the PiHole container to both networks and inter-container communication should work as usual. I haven’t tried this with PiHole specifically but I’ve done it with other services in the past

      • Fenzik@lemmy.ml
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        1 year ago

        Not for PiHole but I was testing this recently with traefik. This has a bunch of traefik stuff in there (I’m on mobile so it’s too hard to edit it) but hopefully you see how the networks work

        # Testing macvlan setup for traefik
        # Will only work on linux because of macvlan network
        
        version: '3'
        
        services:
          traefik-whoami:
            image: traefik/whoami
            container_name: traefik_whoami
            networks:
              - bridge_network
            labels:
              - "traefik.enable=true"
              - "traefik.http.routers.whoami.rule=Host(`whoami.test`)"
              - "traefik.http.routers.whoami.entrypoints=http"
          
          traefik-reverse-proxy:
            image: traefik:v2.10
            container_name: traefik_reverse_proxy
            command:
              - "--api.insecure=true"  # Enable the API dashboard (insecure for testing)
              - "--providers.docker=true"  # Enable Docker provider
              - "--providers.docker.exposedbydefault=false"  # Disable exposing all containers by default
              - "--entrypoints.http.address=:80"  # HTTP entrypoint
              - "--entrypoints.http.forwardedheaders.insecure=true"  # Insecure forwarding (for testing)
              - "--providers.docker.network=bridge_network"  # Use bridge network for traefik discovery
            ports:
              - "1180:80"  # Expose HTTP entrypoint
              - "12345:8080"  # Expose Traefik dashboard
            networks:
              bridge_network: {}
              macvlan_network:
                ipv4_address: 192.168.1.69
            volumes:
              # TODO: Use docker.sock proxy instead of mounting directly
              # https://github.com/Tecnativa/docker-socket-proxy
              - /var/run/docker.sock:/var/run/docker.sock:ro
            labels:
              - "traefik.enable=true"
              - "traefik.http.routers.reverse-proxy.rule=Host(`traefik.test`)"
              - "traefik.http.routers.reverse-proxy.entrypoints=http"
        
        networks:
          bridge_network:
            driver: bridge
        
          macvlan_network:
            driver: macvlan
            driver_opts:
              parent: eth0
            ipam:
              config:
                - subnet: 192.168.1.0/24
                  gateway: 192.168.1.1
                  ip_range: 192.168.1.69/32  # Must be outside router's DHCP range