Skip to content

Instantly share code, notes, and snippets.

@gofer
Last active November 15, 2017 03:29
Show Gist options
  • Save gofer/c9e15265ad27d6c6724dfd953959df5b to your computer and use it in GitHub Desktop.
Save gofer/c9e15265ad27d6c6724dfd953959df5b to your computer and use it in GitHub Desktop.
NSD on Docker
FROM alpine:latest
MAINTAINER Gofer (@gofer_ex) <[email protected]>
ARG nsd_version=4.1.14
ARG control_port=8952
ENV NSD_VERSION=$nsd_version
ENV CONTROL_PORT=$control_port
EXPOSE 53 53/udp $control_port
RUN apk update && \
apk add --no-cache --virtual .build-tools curl make gcc libc-dev && \
apk add --no-cache --virtual .depends libevent openssl && \
apk add --no-cache --virtual .build-depends libevent-dev openssl-dev
WORKDIR /usr/local/nsd
WORKDIR /usr/local/nsd/etc/cert
WORKDIR /usr/src
RUN curl -O https://www.nlnetlabs.nl/downloads/nsd/nsd-${NSD_VERSION}.tar.gz && \
tar xf nsd-${NSD_VERSION}.tar.gz
WORKDIR /usr/src/nsd-${NSD_VERSION}
RUN ./configure \
--prefix=/usr/local/nsd \
--enable-ratelimit \
--with-user=nsd \
--with-libevent \
--with-ssl && \
make && make install
RUN apk del --purge .build-tools && \
apk del --purge .build-depends
WORKDIR /usr/local/nsd
RUN addgroup nsd && \
adduser -S -D -H -h /usr/local/nsd -s /sbin/nologin -u nsd && \
addgroup -S nsd nsd && \
chown -R nsd:nsd /usr/local/nsd
RUN /usr/local/nsd/sbin/nsd-control-setup -d /usr/local/nsd/etc/cert
# Modify following COPY instructions
# COPY file.to.describe.your.zone /usr/local/nsd/var/db/nsd/file.to.describe.your.zone
# COPY nsd.conf /usr/local/nsd/etc/nsd/nsd.conf
ENTRYPOINT [ "/bin/sh" ]
server:
username: nsd
hide-version: yes
identity: "dns"
remote-control:
control-enable: yes
control-interface: 127.0.0.1
control-port: 8952
server-key-file: /usr/local/nsd/etc/cert/nsd_server.key
server-cert-file: /usr/local/nsd/etc/cert/nsd_server.pem
control-key-file: /usr/local/nsd/etc/cert/nsd_control.key
control-cert-file: /usr/local/nsd/etc/cert/nsd_control.pem
zone:
name: describe.your.zone
zonefile: file.to.describe.your.zone
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment