As far as I can tell, this is the only way to accomplish what I want. But it is not available for ARM, maybe I’m missing something?
What I want are 5 services in a multicontainer project. They will have 5 different hostnames that are pingable on the local network, hopefully this is accomplished via interacting with Balena’s host avahi via DBUS.
app1.local, app2.local, app3.local, app4.local and app5.local should all return the same IP address. I am then going to run a reverse proxy to resolve these names to their correct service on the local network. This publishing seems to be the express purpose of the balena-mdns-publisher, so I attempted to use it.
I see a lot of talk about this DBUS interaction, but all of the examples thus far have been old and rely on an initsystem being present in the container, or a single container project. In fact, all examples from Balena’s playground are like this:
It seems however that there is nothing in place to build or provide balena-mdns-publisher for ARM, only AMD64. This seems counter intuitive considering Balena’s goals. Why is this the case? As far as I can see, there is little documentation on interacting with the host AVAHI correctly. It always ends up causing the following documented bug, which has apparently been fixed since 2019, avahi 0.8, but has yet to be merged into upstream for whatever reason.
I have seen the following threads and do not quite understand how they might allow me to do the same thing: