Giter VIP home page Giter VIP logo

Comments (11)

techiebod avatar techiebod commented on July 20, 2024 1

If you exec into the avahi-proxy (or whatever you've called it) with:
docker exec -it avahi-proxy bash

Can you see your entries in the cnames file? Mine has all the entries I have active

How this seems to work is that it scans for docker events to add them to here, and then uses another process which is a bit of python to write them onto the dbus for avahi (if I've understood correctly, and I reserve the right to have completely misunderstood! 😄 ).

from nginx-proxy-avahi-helper.

techiebod avatar techiebod commented on July 20, 2024

Had the same issue, after much head scratching I read the other issue here and saw the link to edgexfoundry-holding/device-bluetooth-c#4 -- long answer very short, the issue is that writing to the dbus socket requires escalated privileges, so "privileged: true" is needed (that's in the docker-compose format, I'm assuming you can transpose to your way of running it). Or at least that worked for me :)

Must be said this repo is way out of date, and rebuilding it is hard (for a docker noob like me at least) due to obsolete dependancies

from nginx-proxy-avahi-helper.

twastvedt avatar twastvedt commented on July 20, 2024

@techiebod Thanks for the tip! I did that, and now the container output looks much more promising. However, the results to the test commands above (avahi-resolve and ping) have the same output. Even though this container reports success, I am not able to resolve the cnames from other machines on the network. Any other thoughts? You said it's working for you, so after starting this container, you can successfully ping (or visit) the urls in the VIRTUAL_HOST environment variable values on your other containers? Thanks!

from nginx-proxy-avahi-helper.

techiebod avatar techiebod commented on July 20, 2024

Yep, all works for me, with the following docker-compose config:

avahi-proxy:
    container_name: avahi-proxy
    image: hardillb/nginx-proxy-avahi-helper
    privileged: true
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - /run/dbus/system_bus_socket:/run/dbus/system_bus_socket:rw
    restart: always

And then a container setup like this (some lines removed for brevity):

homer:
    image: b4bz/homer
    environment:
      - VIRTUAL_HOST=blackbox.local
      - VIRTUAL_PORT=8080
    ports:
      - 8080:8080

So with the above on another machine (i.e. not the host or container) I can ping blackbox.local for example.

To test your local Avahi setup you can do the same from the commandline with: avahi-publish -a -R blah.local <host-ip>

Which whilst it runs, should allow you to ping blah.local from another machine.

Or if you prefer (on a mac) run: dns-sd -G v4 blah.local

HTH

from nginx-proxy-avahi-helper.

twastvedt avatar twastvedt commented on July 20, 2024

Thanks for the confirmation. It's keeping me going, knowing that you're getting it to work! My config now looks like yours (I have several containers I want to host, so they're all on different ports, but otherwise looks the same), and it's still not resolving. avahi-publish works (while running I can ping from another machine). But nothing that avahi-proxy "sets up" seems to be working. Do you know of any way to debug/check on what it's set up, other than pinging? Thanks again.

from nginx-proxy-avahi-helper.

hardillb avatar hardillb commented on July 20, 2024

@twastvedt can you show an example of the names you are trying.

You may need to modify the settings on clients doing looks if they are more than 2 levels deep. e.g. foo.local is 2, www.foo.local is 3.

from nginx-proxy-avahi-helper.

twastvedt avatar twastvedt commented on July 20, 2024

Thanks for the further suggestions. Everything checks out though.

Can you see your entries in the cnames file? Mine has all the entries I have active

@twastvedt can you show an example of the names you are trying.

Yes. the cnames file has a list of all 6 of the containers with VIRTUAL_HOST set:

esphome.local
home.local
infinitude.local
node-red.local
portainer.local
zwave.local

from nginx-proxy-avahi-helper.

techiebod avatar techiebod commented on July 20, 2024

@twastvedt dunno if you've sorted this yet, or given up! ;)

But if you want to debug this further, given that you can see avahi-proxy is seeing the changes made in docker-land, the next bit is to work out if avahi is seeing them, a killall -USR1 avahi-daemon will get avahi to dump it's "zone" info into syslog, and then you can see if they appear. Which then at least let's you see if avahi is getting the messages or not

from nginx-proxy-avahi-helper.

twastvedt avatar twastvedt commented on July 20, 2024

@techiebod Not sorted. I'm out of my depth here, but I'd still love to get this working and still very much appreciate your help.

I did as you suggest. Initially Avahi's cache dump in syslog did not include any of the cnames from avahi-proxy. I don't believe I actually changed anything, but after some fiddling I restarted the machine and now the cnames show up in the syslog!

(Raspberry Pi's name in the below is "katie")

Jun  7 21:01:26 katie avahi-daemon[693]: Got SIGUSR1, dumping record data.
Jun  7 21:01:26 katie avahi-daemon[693]: ;;; ZONE DUMP FOLLOWS ;;;
Jun  7 21:01:26 katie avahi-daemon[693]: zwave.local#011IN#011CNAME katie.local ; ttl=30 ; iface=-1 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: portainer.local#011IN#011CNAME katie.local ; ttl=30 ; iface=-1 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: node-red.local#011IN#011CNAME katie.local ; ttl=30 ; iface=-1 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: infinitude.local#011IN#011CNAME katie.local ; ttl=30 ; iface=-1 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: home.local#011IN#011CNAME katie.local ; ttl=30 ; iface=-1 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: esphome.local#011IN#011CNAME katie.local ; ttl=30 ; iface=-1 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: _services._dns-sd._udp.local#011IN#011PTR _smb._tcp.local ; ttl=4500 ; iface=-1 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: KATIE._smb._tcp.local#011IN#011TXT  ; ttl=4500 ; iface=-1 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: KATIE._smb._tcp.local#011IN#011SRV 0 0 445 katie.local ; ttl=120 ; iface=-1 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: _smb._tcp.local#011IN#011PTR KATIE._smb._tcp.local ; ttl=4500 ; iface=-1 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: 7.a.9.6.e.7.7.9.f.5.1.0.1.e.f.5.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa#011IN#011PTR katie.local ; ttl=120 ; iface=2 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: katie.local#011IN#011AAAA fe80::5fe1:15f:977e:69a7 ; ttl=120 ; iface=2 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: 64.68.168.192.in-addr.arpa#011IN#011PTR katie.local ; ttl=120 ; iface=2 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: katie.local#011IN#011A 192.168.68.64 ; ttl=120 ; iface=2 proto=-1
Jun  7 21:01:26 katie avahi-daemon[693]: ;;; INTERFACE eth0.IPv6 ;;;
Jun  7 21:01:26 katie avahi-daemon[693]: ;;; CACHE DUMP FOLLOWS ;;;
Jun  7 21:01:26 katie avahi-daemon[693]: katie.local#011IN#011AAAA fe80::5fe1:15f:977e:69a7 ; ttl=120
Jun  7 21:01:26 katie avahi-daemon[693]: katie.local#011IN#011A 192.168.68.64 ; ttl=120
Jun  7 21:01:26 katie avahi-daemon[693]: _services._dns-sd._udp.local#011IN#011PTR _smb._tcp.local ; ttl=4500
Jun  7 21:01:26 katie avahi-daemon[693]: _smb._tcp.local#011IN#011PTR KATIE._smb._tcp.local ; ttl=4500
Jun  7 21:01:26 katie avahi-daemon[693]: KATIE._smb._tcp.local#011IN#011TXT  ; ttl=4500
Jun  7 21:01:26 katie avahi-daemon[693]: ;;; INTERFACE eth0.IPv4 ;;;
Jun  7 21:01:26 katie avahi-daemon[693]: ;;; CACHE DUMP FOLLOWS ;;;
Jun  7 21:01:26 katie avahi-daemon[693]: katie.local#011IN#011AAAA fe80::5fe1:15f:977e:69a7 ; ttl=120
Jun  7 21:01:26 katie avahi-daemon[693]: katie.local#011IN#011A 192.168.68.64 ; ttl=120
Jun  7 21:01:26 katie avahi-daemon[693]: #011CLASS1440#011TYPE41 \# 18 00 04 00 0E 00 00 66 E0 03 88 0A 9D D8 14 DF 51 04 67 ; ttl=4500
Jun  7 21:01:26 katie avahi-daemon[693]: _services._dns-sd._udp.local#011IN#011PTR _smb._tcp.local ; ttl=4500
Jun  7 21:01:26 katie avahi-daemon[693]: _smb._tcp.local#011IN#011PTR KATIE._smb._tcp.local ; ttl=4500
Jun  7 21:01:26 katie avahi-daemon[693]: KATIE._smb._tcp.local#011IN#011TXT  ; ttl=4500
Jun  7 21:01:26 katie avahi-daemon[693]: ;; WIDE AREA CACHE ;;;

Ping still doesn't work though. Is this what the cname lines in syslog should look like?

from nginx-proxy-avahi-helper.

techiebod avatar techiebod commented on July 20, 2024

So that looks good now. Where are you pinging from? Can it ping katie.local? If it can ping katie.local based on that info you should be able to ping zwave.local for example. But this shows that the info has been passed through from docker, and out to avahi, to the proxy is doing it's job :)

from nginx-proxy-avahi-helper.

twastvedt avatar twastvedt commented on July 20, 2024

Weird. Pinging from my Windows laptop, which is on the same network:

$ ping katie.local

Pinging katie.local [fe80::5fe1:15f:977e:69a7%2] with 32 bytes of data:
Reply from fe80::5fe1:15f:977e:69a7%2: time=5ms
Reply from fe80::5fe1:15f:977e:69a7%2: time=2ms
Reply from fe80::5fe1:15f:977e:69a7%2: time=3ms
Reply from fe80::5fe1:15f:977e:69a7%2: time=2ms

Ping statistics for fe80::5fe1:15f:977e:69a7%2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 2ms, Maximum = 5ms, Average = 3ms

$ ping zwave.local
Ping request could not find host zwave.local. Please check the name and try again.

As you say, I guess this is no longer an issue with this project, though now I'm not sure where the issue is!

from nginx-proxy-avahi-helper.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.