File Dockerfile of Package bind-image

# SPDX-License-Identifier: MIT

#     Copyright (c) 2025 SUSE LLC

# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon.

# The content of THIS FILE IS AUTOGENERATED and should not be manually modified.
# It is maintained by the BCI team and generated by
# https://github.com/SUSE/BCI-dockerfile-generator

# Please submit bugfixes or comments via https://bugs.opensuse.org/
# You can contact the BCI team via https://github.com/SUSE/bci/discussions

#!UseOBSRepositories

#!BuildTag: opensuse/bind:%%bind_major_minor_patch%%-%RELEASE%
#!BuildTag: opensuse/bind:%%bind_major_minor_patch%%
#!BuildTag: opensuse/bind:9
#!BuildTag: opensuse/bind:%%bind_major_minor%%
#!BuildTag: opensuse/bind:latest

FROM opensuse/bci/bci-micro:latest AS target
FROM opensuse/tumbleweed:latest AS builder
COPY --from=target / /target

RUN set -euo pipefail; \
    zypper -n --installroot /target --gpg-auto-import-keys install --no-recommends bind bind-utils

# patch named.prep to not call logger (provided by systemd)
# and just log to stdout
RUN set -euo pipefail; \
    mkdir -p /target/usr/local/lib/bind; \
    cp /target//usr/libexec/bind/named.prep /target/usr/local/lib/bind/named.prep; \
    sed -i -e 's|logger "Warning: \$1"|echo "Warning: \$1" >\&2|' -e '/\. \$SYSCONFIG_FILE/d' /target/usr/local/lib/bind/named.prep

RUN set -euo pipefail; zypper -n --installroot /target clean -a; \
    rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}
FROM opensuse/bci/bci-micro:latest
COPY --from=builder /target /
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=org.opensuse.application.bind
LABEL org.opencontainers.image.title="openSUSE Tumbleweed ISC BIND 9"
LABEL org.opencontainers.image.description="ISC BIND 9 container based on the openSUSE Tumbleweed Base Container Image."
LABEL org.opencontainers.image.version="%%bind_major_minor_patch%%"
LABEL org.opencontainers.image.url="https://www.opensuse.org"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="openSUSE Project"
LABEL org.opencontainers.image.source="%SOURCEURL%"
LABEL org.opencontainers.image.ref.name="%%bind_major_minor_patch%%-%RELEASE%"
LABEL org.opensuse.reference="registry.opensuse.org/opensuse/bind:%%bind_major_minor_patch%%-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL org.opensuse.lifecycle-url="https://en.opensuse.org/Lifetime#openSUSE_BCI"
LABEL org.opensuse.release-stage="released"
# endlabelprefix
LABEL io.artifacthub.package.readme-url="%SOURCEURL_WITH(README.md)%"
ENV RNDC_KEYSIZE="512"
ENV NAMED_ARGS=""
ENV NAMED_INITIALIZE_SCRIPTS=""
ENV NAMED_CONF="/etc/named.conf"
EXPOSE 53/tcp 53/udp 953/tcp 853/tcp 443/tcp

COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN set -euo pipefail; chmod +x /usr/local/bin/entrypoint.sh

# create directories that tmpfiles.d would create for us
RUN set -euo pipefail; \
    mkdir -p /run/named; chown root:named /run/named; chmod 1775 /run/named; \ 
    mkdir -p /var/lib/named; chown root:named /var/lib/named; chmod 1775 /var/lib/named; \ 
    mkdir -p /var/lib/named/dyn; chown named:named /var/lib/named/dyn; chmod 755 /var/lib/named/dyn; \ 
    mkdir -p /var/lib/named/master; chown root:root /var/lib/named/master; chmod 755 /var/lib/named/master; \ 
    mkdir -p /var/lib/named/slave; chown named:named /var/lib/named/slave; chmod 755 /var/lib/named/slave; \ 
    mkdir -p /var/log/named; chown named:named /var/log/named; chmod 750 /var/log/named;
# create files that tmpfiles.d would create for us
RUN set -euo pipefail; touch /var/lib/named/127.0.0.zone /var/lib/named/localhost.zone /var/lib/named/named.root.key /var/lib/named/root.hint

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
HEALTHCHECK --interval=10s --timeout=5s --retries=10 CMD dig +retry=0 +short @127.0.0.1 conncheck.opensuse.org >/dev/null && echo OK
openSUSE Build Service is sponsored by