From 1fb202825917535fe0b312ebd21b3fa84a9091f8 Mon Sep 17 00:00:00 2001 From: sinav Date: Tue, 13 May 2025 07:34:41 +0300 Subject: [PATCH] feat: add coredns --- coredns/Dockerfile | 26 ++++++++++ coredns/build.yaml | 5 ++ coredns/config.yaml | 17 +++++++ coredns/icon.png | Bin 0 -> 27225 bytes coredns/logo.png | Bin 0 -> 8632 bytes .../s6-rc.d/coredns/dependencies.d/base | 0 .../etc/s6-overlay/s6-rc.d/coredns/finish | 45 ++++++++++++++++++ .../rootfs/etc/s6-overlay/s6-rc.d/coredns/run | 9 ++++ .../etc/s6-overlay/s6-rc.d/coredns/type | 1 + .../s6-rc.d/user/contents.d/coredns | 0 10 files changed, 103 insertions(+) create mode 100644 coredns/Dockerfile create mode 100644 coredns/build.yaml create mode 100644 coredns/config.yaml create mode 100644 coredns/icon.png create mode 100644 coredns/logo.png create mode 100644 coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/dependencies.d/base create mode 100644 coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/finish create mode 100644 coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/run create mode 100644 coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/type create mode 100644 coredns/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/coredns diff --git a/coredns/Dockerfile b/coredns/Dockerfile new file mode 100644 index 0000000..bc07742 --- /dev/null +++ b/coredns/Dockerfile @@ -0,0 +1,26 @@ +ARG BUILD_FROM=ghcr.io/hassio-addons/debian-base:7.8.2 +# hadolint ignore=DL3006 +FROM ${BUILD_FROM} + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +ARG COREDNS_VERSION=1.12.1 + +WORKDIR /coredns + +RUN apt-get update \ + && apt-get install -y ca-certificates libcap2-bin \ + && apt-get clean \ + && curl -sSL -o coredns.tgz \ + https://github.com/coredns/coredns/releases/download/v${COREDNS_VERSION}/coredns_${COREDNS_VERSION}_linux_arm64.tgz \ + && tar -xvf coredns.tgz \ + && chmod +x coredns + +LABEL \ + org.opencontainers.image.title="CoreDNS Add-on" \ + org.opencontainers.image.description="CoreDNS server for Home Assistant" \ + org.opencontainers.image.url="https://coredns.io" \ + org.opencontainers.image.source="https://github.com/coredns/coredns" \ + org.opencontainers.image.documentation="https://coredns.io/manual" + +COPY rootfs / diff --git a/coredns/build.yaml b/coredns/build.yaml new file mode 100644 index 0000000..c4143af --- /dev/null +++ b/coredns/build.yaml @@ -0,0 +1,5 @@ +--- +build_from: + amd64: ghcr.io/hassio-addons/debian-base/amd64:7.8.2 +codenotary: + base_image: codenotary@frenck.dev diff --git a/coredns/config.yaml b/coredns/config.yaml new file mode 100644 index 0000000..7322f41 --- /dev/null +++ b/coredns/config.yaml @@ -0,0 +1,17 @@ +name: "Coredns" +version: "1.12.1" +slug: "coredns" +description: "CoreDNS is a DNS server that chains plugins " +url: "https://coredns.io/" +arch: + - amd64 +boot: auto +init: false +startup: services +map: + - addon_config:rw +options: {} +schema: {} +ports: + 53/tcp: 53 + 53/udp: 53 diff --git a/coredns/icon.png b/coredns/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..803960c3049084ed4bae6945abf1c16d910c1784 GIT binary patch literal 27225 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

J+Ua!qulTo

=w1?n{t3 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 Tt_u8D)Fu;y)29kgI^X<%Rb^kk literal 0 HcmV?d00001 diff --git a/coredns/logo.png b/coredns/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d8f4df038fb3d691f518b68e1dc8283910316980 GIT binary patch literal 8632 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 /run/s6-linux-init-container-results/exitcode + fi + + # If the signal is SIGTERM, we should halt the container and take down + # the whole process tree. + [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt + +# The service exited with a non-zero exit code, which means it crashed. +elif [[ "${exit_code_service}" -ne 0 ]]; then + + # The service might be a result of another service crashing. Only + # overwrite the container exit code if it is not already set. + if [[ "${exit_code_container}" -eq 0 ]]; then + echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode + fi + + # We should halt the container and take down the whole process tree. + exec /run/s6/basedir/bin/halt + +# The service exited with a zero exit code, which means it exited, let +# S6 supervision restart it. +else + bashio::log.info "Service ${service} restarting..." +fi diff --git a/coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/run b/coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/run new file mode 100644 index 0000000..b00f4f4 --- /dev/null +++ b/coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/run @@ -0,0 +1,9 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Add-on: CoreDNS +# ============================================================================== + +bashio::log.info "Starting CoreDNS..." + +exec /coredns --conf /config/Corefile diff --git a/coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/type b/coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/type new file mode 100644 index 0000000..1780f9f --- /dev/null +++ b/coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/coredns/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/coredns b/coredns/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/coredns new file mode 100644 index 0000000..e69de29