coredns-zcash/Dockerfile

53 lines
1.6 KiB
Docker
Raw Permalink Normal View History

ARG GO_VERSION=1.21.0
ARG ALPINE_VERSION=3.18
ARG COREDNS_VERSION=1.11.1
ARG DNSSEEDER_VERSION=v0.2.4-beta
FROM coredns/coredns:${COREDNS_VERSION} AS coredns
2020-05-29 14:58:14 -07:00
FROM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS builder
LABEL maintainer "Zcash Foundation <engineers@zfnd.org>"
2020-05-29 14:58:14 -07:00
RUN apk --no-cache add \
ca-certificates \
libcap \
2020-05-29 14:58:14 -07:00
git \
make
ARG COREDNS_VERSION
ARG DNSSEEDER_VERSION
2020-05-29 14:58:14 -07:00
RUN git clone --depth 1 --branch v${COREDNS_VERSION} https://github.com/coredns/coredns /go/src/github.com/coredns/coredns
2020-05-29 14:58:14 -07:00
WORKDIR /go/src/github.com/coredns/coredns
RUN echo "dnsseed:github.com/zcashfoundation/dnsseeder/dnsseed" >> /go/src/github.com/coredns/coredns/plugin.cfg
# Must be the same replace as in `dnsseeder`. Currently pointing to "main-zfnd" branch
RUN echo "replace github.com/btcsuite/btcd => github.com/ZcashFoundation/btcd v0.22.0-beta.0.20220607000607-40dc9492aa42" >> /go/src/github.com/coredns/coredns/go.mod
RUN go get github.com/zcashfoundation/dnsseeder/dnsseed@${DNSSEEDER_VERSION}
2020-05-29 14:58:14 -07:00
RUN make all && \
setcap cap_net_bind_service=+ep ./coredns
2020-05-29 14:58:14 -07:00
FROM alpine:${ALPINE_VERSION} AS runner
RUN apk --no-cache add bind-tools
2020-05-29 14:58:14 -07:00
USER nobody:nobody
COPY --from=builder /go/src/github.com/coredns/coredns/coredns /usr/bin/coredns
COPY --from=coredns /etc/ssl/certs /etc/ssl/certs
2020-05-29 14:58:14 -07:00
COPY coredns/Corefile /etc/coredns/Corefile
# DNS will bind to 53
EXPOSE 53 53/udp
2020-05-29 14:58:14 -07:00
# Check if the Coredns container is healthy
HEALTHCHECK --interval=5s --retries=10 CMD dig @0.0.0.0 mainnet.seeder.zfnd.org +dnssec >/dev/null
2020-05-29 14:58:14 -07:00
# Start coredns with custom configuration file
ENTRYPOINT ["coredns"]
CMD ["-conf", "/etc/coredns/Corefile"]