From 18b572dc44dd43259f1ba60e159ba5ade69d60ce Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Tue, 3 Jun 2025 11:26:20 +1200 Subject: [PATCH] Push the build files --- Dockerfile | 20 ++++++++++++++++++++ entrypoint.sh | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 Dockerfile create mode 100644 entrypoint.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4b33a4e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM alpine:3.22.0 + +RUN apk add --no-cache build-base bash docker-cli git \ + && git clone -b add-ipv6-support https://github.com/Alphix/mdns-repeater.git \ + && cd mdns-repeater \ + && make \ + && mv mdns-repeater /bin \ + && chmod a+x /bin/mdns-repeater \ + && apk del build-base git \ + && rm -rf /var/cache/apk/* /tmp/* + +COPY entrypoint.sh /entrypoint.sh +RUN chmod a+x entrypoint.sh + +ENV USE_MDNS_REPEATER=1 \ + OPTIONS="" \ + INTERFACES="eth0" \ + DOCKER_NETWORKS="net1 net2" + +ENTRYPOINT [ "/entrypoint.sh" ] diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..5dc7505 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +ifnames=(${INTERFACES}) + +# determine interface names for all given docker networks +for dn in ${DOCKER_NETWORKS}; do + ifname=$(docker network list | grep "$dn" | awk '{print $1}') + if [[ -z $ifname ]]; then + echo "unable to find docker interface for $dn" > /dev/stderr + fi + + ifnames+=("br-$ifname") +done + +if [[ ${USE_MDNS_REPEATER} -eq 1 ]]; then + exec mdns-repeater ${OPTIONS} ${ifnames[@]} +else + # If the local user has disabled the app, then just sleep forever + sleep infinity +fi