network: Add MDNS support for .local domains

This requires the initialisation of both DBus and
Avahi in the `entry.sh` script to allow resolution
via libc.

Due to issues with Avahi's `init.d` script, the previous
PIDfile is explicitly removed.

Connects-to: #712
Change-type: minor
Signed-off-by: Heds Simons <heds@resin.io>
This commit is contained in:
Heds Simons 2018-07-27 14:18:13 +01:00 committed by Heds Simons
parent 688b5c2a35
commit f716624f89
No known key found for this signature in database
GPG Key ID: 22D867E0AF941081
3 changed files with 77 additions and 1 deletions

View File

@ -98,7 +98,7 @@ RUN [ "cross-build-end" ]
##############################################################################
# Minimal runtime image
FROM resin/$ARCH-supervisor-base:v1.2.0
FROM resin/$ARCH-supervisor-base:v1.3.0
ARG ARCH
ARG VERSION=master
ARG DEFAULT_MIXPANEL_TOKEN=bananasbananas
@ -109,6 +109,9 @@ COPY --from=node-build /usr/src/app/dist ./dist
COPY --from=node-deps /build/node_modules ./node_modules
COPY --from=node-deps /build/rootfs-overlay/ /
# Remove default nproc limit for Avahi for it to work in-container
COPY avahi-daemon.conf /etc/avahi/avahi-daemon.conf
VOLUME /data
ENV CONFIG_MOUNT_POINT=/boot/config.json \

67
avahi-daemon.conf Normal file
View File

@ -0,0 +1,67 @@
# This file is part of avahi.
#
# avahi is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# avahi is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with avahi; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.
# See avahi-daemon.conf(5) for more information on this configuration
# file!
[server]
#host-name=foo
#domain-name=local
#browse-domains=0pointer.de, zeroconf.org
use-ipv4=yes
use-ipv6=yes
#allow-interfaces=eth0
#deny-interfaces=eth1
#check-response-ttl=no
#use-iff-running=no
#enable-dbus=yes
#disallow-other-stacks=no
#allow-point-to-point=no
#cache-entries-max=4096
#clients-max=4096
#objects-per-client-max=1024
#entries-per-entry-group-max=32
ratelimit-interval-usec=1000000
ratelimit-burst=1000
[wide-area]
enable-wide-area=yes
[publish]
#disable-publishing=no
#disable-user-service-publishing=no
#add-service-cookie=no
#publish-addresses=yes
publish-hinfo=no
publish-workstation=no
#publish-domain=yes
#publish-dns-servers=192.168.50.1, 192.168.50.2
#publish-resolv-conf-dns-servers=yes
#publish-aaaa-on-ipv4=yes
#publish-a-on-ipv6=no
[reflector]
#enable-reflector=no
#reflect-ipv=no
[rlimits]
#rlimit-as=
rlimit-core=0
rlimit-data=4194304
rlimit-fsize=0
rlimit-nofile=768
rlimit-stack=4194304

View File

@ -2,6 +2,12 @@
set -o errexit
# Start Avahi to allow MDNS lookups
mkdir -p /var/run/dbus
rm -f /var/run/avahi-daemon/pid
/etc/init.d/dbus-1 start
/etc/init.d/avahi-daemon start
[ -d /mnt/root/tmp/resin-supervisor ] ||
mkdir -p /mnt/root/tmp/resin-supervisor