FROM alpine:latest

RUN apk add \
    bash \
    bind \
    bind-tools \
    execline \
    nano \
    nano-syntax \
    openssl \
    s6-overlay \
    vim

# Dependencies for REST API
RUN apk add \
    gcc \
    libc-dev \
    make \
    perl-app-cpanminus \
    perl-clone \
    perl-config-any \
    perl-data-optlist \
    perl-dev \
    perl-exporter-tiny \
    perl-extutils-config \
    perl-extutils-helpers \
    perl-extutils-installpaths \
    perl-file-sharedir \
    perl-file-sharedir-install \
    perl-file-slurp \
    perl-file-which \
    perl-hash-merge-simple \
    perl-hash-multivalue \
    perl-http-date \
    perl-http-headers-fast \
    perl-import-into \
    perl-json-maybexs \
    perl-module-build \
    perl-module-build-tiny \
    perl-module-implementation \
    perl-module-runtime \
    perl-moo \
    perl-params-util \
    perl-params-validate \
    perl-path-tiny \
    perl-plack \
    perl-readonly \
    perl-ref-util \
    perl-role-tiny \
    perl-safe-isa \
    perl-sub-exporter \
    perl-sub-install \
    perl-sub-quote \
    perl-template-toolkit \
    perl-type-tiny \
    perl-yaml

RUN cpanm -n -v \
    Dancer2 \
    Module::Pluggable::Object

RUN install -o named -g root -m 0755 -d /var/db/bind
COPY --chown=named:root etc/bind/named.conf /etc/bind/named.conf
COPY --chown=named:root zones /etc/bind/zones

COPY web-api /src/api

COPY etc/s6-overlay /etc/s6-overlay

ENTRYPOINT ["/init"]