From e82322ebcf9a3935f18050bf572475a98fb24bbf Mon Sep 17 00:00:00 2001 From: Ken Schiano Date: Sat, 8 Aug 2026 07:43:51 -0400 Subject: [PATCH] Revert "fix: symlink /etc/dns to /config/dns at build time, drop entrypoint" This reverts commit ed54778a0d75a3dd864c8766d671076793365d94. --- technitium_dns/Dockerfile | 9 +++++---- technitium_dns/config.yaml | 2 +- technitium_dns/entrypoint.sh | 22 ++++++++++++++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 technitium_dns/entrypoint.sh diff --git a/technitium_dns/Dockerfile b/technitium_dns/Dockerfile index 04b36eb..2e46ef9 100644 --- a/technitium_dns/Dockerfile +++ b/technitium_dns/Dockerfile @@ -1,9 +1,10 @@ +ARG BUILD_FROM=ghcr.io/hassio-addons/base:latest FROM technitium/dns-server:latest ENV DNS_SERVER_WEB_SERVICE_HTTPS_PORT=53443 \ DNS_SERVER_WEB_SERVICE_ENABLE_HTTPS=false -# Technitium hardcodes /etc/dns as its config dir. HA's addon_config mounts -# at /config (persistent). Replace the real dir with a symlink so Technitium -# writes through to the persistent volume. -RUN rm -rf /etc/dns && mkdir -p /config/dns && ln -s /config/dns /etc/dns \ No newline at end of file +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/technitium_dns/config.yaml b/technitium_dns/config.yaml index 14bc7c3..c5fafcc 100644 --- a/technitium_dns/config.yaml +++ b/technitium_dns/config.yaml @@ -1,5 +1,5 @@ name: Technitium DNS -version: 15.4.4 +version: 15.4.3 slug: technitium_dns description: Technitium DNS Server add-on for Home Assistant arch: diff --git a/technitium_dns/entrypoint.sh b/technitium_dns/entrypoint.sh new file mode 100644 index 0000000..8820665 --- /dev/null +++ b/technitium_dns/entrypoint.sh @@ -0,0 +1,22 @@ +#!/bin/sh +set -e + +# Technitium ships /etc/dns as a real directory in the image. We need it +# to point at the persistent HA add-on config volume instead. Remove the +# directory and replace with a symlink at runtime (after HA mounts volumes). + +DATA="/config/dns" + +mkdir -p "$DATA" + +if [ -d /etc/dns ] && [ ! -L /etc/dns ]; then + # Seed: copy any existing default config into the volume on first run + if [ -z "$(ls -A "$DATA" 2>/dev/null)" ]; then + cp -a /etc/dns/. "$DATA"/ + fi + rm -rf /etc/dns +fi + +ln -sf "$DATA" /etc/dns + +exec dotnet DnsServerApp.dll \ No newline at end of file