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 0000000..803960c Binary files /dev/null and b/coredns/icon.png differ diff --git a/coredns/logo.png b/coredns/logo.png new file mode 100644 index 0000000..d8f4df0 Binary files /dev/null and b/coredns/logo.png differ diff --git a/coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/dependencies.d/base b/coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/finish b/coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/finish new file mode 100644 index 0000000..6f3acac --- /dev/null +++ b/coredns/rootfs/etc/s6-overlay/s6-rc.d/coredns/finish @@ -0,0 +1,45 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Add-on: CoreDNS +# ============================================================================== +declare exit_code +readonly exit_code_container=$( /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