diff --git a/pkg/nsd/Dockerfile b/pkg/nsd/Dockerfile index c6e11c8..915c530 100644 --- a/pkg/nsd/Dockerfile +++ b/pkg/nsd/Dockerfile @@ -1,7 +1,7 @@ FROM alpine MAINTAINER Pierre-Olivier Mercier -RUN apk add --no-cache alpine-baselayout bash busybox nsd openssh openrc +RUN apk add --no-cache alpine-baselayout bash busybox nsd openssh openssl openrc VOLUME /etc/nsd @@ -9,7 +9,8 @@ EXPOSE 53 EXPOSE 53/udp RUN rc-update add nsd default && rc-update add sshd default +COPY init /etc/init.d/nsd -CMD ["/sbin/openrc", "default"] +CMD ["/sbin/openrc-init"] LABEL org.mobyproject.config='{"binds": ["/etc/resolv.conf:/etc/resolv.conf"], "capabilities": ["CAP_NET_BIND_SERVICE"]}' diff --git a/pkg/nsd/init b/pkg/nsd/init new file mode 100755 index 0000000..38b6402 --- /dev/null +++ b/pkg/nsd/init @@ -0,0 +1,28 @@ +#!/sbin/openrc-run + +description="NSD is an authoritative-only, high performance, open source name server" +checkconf=/usr/sbin/nsd-checkconf +cfgfile=${NSD_CONFIG:-/etc/nsd/nsd.conf} +pidfile=$($checkconf -o pidfile $cfgfile) +pidfile=${pidfile:-/var/run/nsd/nsd.pid} +command=/usr/sbin/nsd +command_args="" + +depend() { + use logger +} + +start_pre() { + [ -f /etc/nsd/nsd.conf ] || { + cp -r /etc/nsd.sample/* /etc/nsd/ + nsd-control-setup + } + + ebegin + checkpath --directory --owner nsd:nsd ${pidfile%/*} + checkpath --directory --owner nsd:nsd /var/db/nsd/ + $checkconf $cfgfile + [ "$cfgfile" = "/etc/nsd/nsd.conf" ] || command_args="$command_args -c $cfgfile" + [ "$pidfile" = "/var/run/nsd/nsd.pid" ] || command_args="$command_args -P $pidfile" + eend $? +}