diff --git a/Dockerfile b/Dockerfile index 10ce41c..5ea1468 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,50 +1,51 @@ -ARG BUILD_FROM - -FROM --platform=amd64 golang:1.15-alpine3.13 AS builder - -WORKDIR /usr/src -ARG BUILD_ARCH -ARG COREDNS_VERSION - -# Build CoreDNS -COPY plugins plugins -RUN \ - set -x \ - && apk add --no-cache \ - git \ - make \ - bash \ - && git clone --depth 1 -b v${COREDNS_VERSION} https://github.com/coredns/coredns \ - && cp -rf plugins/* coredns/plugin/ \ - && cd coredns \ - && sed -i "/^template:template/d" plugin.cfg \ - && sed -i "/^hosts:.*/a template:template" plugin.cfg \ - && sed -i "/^forward:.*/i fallback:fallback" plugin.cfg \ - && sed -i "/^hosts:.*/a mdns:mdns" plugin.cfg \ - && sed -i "/route53:route53/d" plugin.cfg \ - && sed -i "/clouddns:clouddns/d" plugin.cfg \ - && sed -i "/k8s_external:k8s_external/d" plugin.cfg \ - && sed -i "/kubernetes:kubernetes/d" plugin.cfg \ - && sed -i "/etcd:etcd/d" plugin.cfg \ - && sed -i "/grpc:grpc/d" plugin.cfg \ - && go generate \ - && \ - if [ "${BUILD_ARCH}" = "armhf" ]; then \ - make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARM=6 GOARCH=arm"; \ - elif [ "${BUILD_ARCH}" = "armv7" ]; then \ - make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARM=7 GOARCH=arm"; \ - elif [ "${BUILD_ARCH}" = "aarch64" ]; then \ - make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=arm64"; \ - elif [ "${BUILD_ARCH}" = "i386" ]; then \ - make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=386"; \ - elif [ "${BUILD_ARCH}" = "amd64" ]; then \ - make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=amd64"; \ - else \ - exit 1; \ - fi - -FROM ${BUILD_FROM} - -WORKDIR /config -COPY --from=builder /usr/src/coredns/coredns /usr/bin/coredns -COPY rootfs / +ARG BUILD_FROM + +FROM --platform=amd64 golang:1.22-alpine3.19 AS builder + +WORKDIR /usr/src +ARG BUILD_ARCH +ARG COREDNS_VERSION + +# Build CoreDNS +COPY plugins plugins +RUN \ + set -x \ + && apk add --no-cache \ + git \ + make \ + bash \ + && git clone --depth 1 -b v${COREDNS_VERSION} https://github.com/coredns/coredns \ + && cp -rf plugins/* coredns/plugin/ \ + && cd coredns \ + && sed -i "/^template:template/d" plugin.cfg \ + && sed -i "/^hosts:.*/a template:template" plugin.cfg \ + && sed -i "/^forward:.*/i fallback:fallback" plugin.cfg \ + && sed -i "/^hosts:.*/a mdns:mdns" plugin.cfg \ + && sed -i "/route53:route53/d" plugin.cfg \ + && sed -i "/clouddns:clouddns/d" plugin.cfg \ + && sed -i "/k8s_external:k8s_external/d" plugin.cfg \ + && sed -i "/kubernetes:kubernetes/d" plugin.cfg \ + && sed -i "/etcd:etcd/d" plugin.cfg \ + && sed -i "/grpc:grpc/d" plugin.cfg \ + && go mod tidy \ + && go generate \ + && \ + if [ "${BUILD_ARCH}" = "armhf" ]; then \ + make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARM=6 GOARCH=arm"; \ + elif [ "${BUILD_ARCH}" = "armv7" ]; then \ + make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARM=7 GOARCH=arm"; \ + elif [ "${BUILD_ARCH}" = "aarch64" ]; then \ + make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=arm64"; \ + elif [ "${BUILD_ARCH}" = "i386" ]; then \ + make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=386"; \ + elif [ "${BUILD_ARCH}" = "amd64" ]; then \ + make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=amd64"; \ + else \ + exit 1; \ + fi + +FROM ${BUILD_FROM} + +WORKDIR /config +COPY --from=builder /usr/src/coredns/coredns /usr/bin/coredns +COPY rootfs / diff --git a/build.yaml b/build.yaml index 4b9c45a..9c9a64e 100644 --- a/build.yaml +++ b/build.yaml @@ -1,10 +1,10 @@ image: ghcr.io/home-assistant/{arch}-hassio-dns build_from: - aarch64: ghcr.io/home-assistant/aarch64-base:3.17 - armhf: ghcr.io/home-assistant/armhf-base:3.17 - armv7: ghcr.io/home-assistant/armv7-base:3.17 - amd64: ghcr.io/home-assistant/amd64-base:3.17 - i386: ghcr.io/home-assistant/i386-base:3.17 + aarch64: ghcr.io/home-assistant/aarch64-base:3.19 + armhf: ghcr.io/home-assistant/armhf-base:3.19 + armv7: ghcr.io/home-assistant/armv7-base:3.19 + amd64: ghcr.io/home-assistant/amd64-base:3.19 + i386: ghcr.io/home-assistant/i386-base:3.19 codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io @@ -21,4 +21,4 @@ labels: org.opencontainers.image.documentation: https://www.home-assistant.io/docs/ org.opencontainers.image.licenses: Apache License 2.0 args: - COREDNS_VERSION: 1.8.4 + COREDNS_VERSION: 1.8.7 diff --git a/plugins/fallback/fallback.go b/plugins/fallback/fallback.go index b2b1509..57f2858 100644 --- a/plugins/fallback/fallback.go +++ b/plugins/fallback/fallback.go @@ -2,7 +2,7 @@ package fallback import ( - "golang.org/x/net/context" + "context" "github.com/coredns/coredns/plugin" "github.com/coredns/coredns/plugin/pkg/nonwriter" diff --git a/plugins/fallback/fallback_test.go b/plugins/fallback/fallback_test.go index 0b95135..918e148 100644 --- a/plugins/fallback/fallback_test.go +++ b/plugins/fallback/fallback_test.go @@ -1,10 +1,9 @@ package fallback import ( + "context" "testing" - "golang.org/x/net/context" - "github.com/coredns/coredns/plugin/pkg/dnstest" "github.com/coredns/coredns/plugin/test" diff --git a/plugins/mdns/mdns.go b/plugins/mdns/mdns.go index 90d07e4..87f02f8 100644 --- a/plugins/mdns/mdns.go +++ b/plugins/mdns/mdns.go @@ -1,6 +1,7 @@ package mdns import ( + "context" "net" "strings" "syscall" @@ -11,7 +12,6 @@ import ( "github.com/coredns/coredns/request" "github.com/miekg/dns" - "golang.org/x/net/context" ) var log = clog.NewWithPlugin("mdns")