diff --git a/bind9/9.18.24/22.03-lts-sp3/Dockerfile b/bind9/9.18.24/22.03-lts-sp3/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..e45a581186968a4f4b66b209095a3c309d2b961b --- /dev/null +++ b/bind9/9.18.24/22.03-lts-sp3/Dockerfile @@ -0,0 +1,35 @@ +ARG BASE=openeuler/openeuler:22.03-lts-sp3 +FROM ${BASE} + +ARG VERSION=9.18.24 + +RUN yum -y update && yum -y install make gcc xz libcap-devel libuv-devel libnghttp2-devel openssl-devel perl && yum clean all +RUN curl -fSL --output bind9.tar.xz https://downloads.isc.org/isc/bind9/${VERSION}/bind-${VERSION}.tar.xz && \ + mkdir -p /bind9 && tar -xvf bind9.tar.xz -C /bind9 --strip-components=1 && \ + rm -rf bind9.tar.xz && cd /bind9 && \ + ./configure \ + --enable-syscalls \ + --prefix=/usr/local/bind9 \ + --enable-threads \ + --with-openssl=yes \ + --enable-openssl-version-check \ + --enable-ipv6 \ + --disable-linux-caps && \ + make -j "$(nproc)" && make install + +ENV PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH +RUN mkdir /usr/local/bind9/dev && \ + mknod -m 666 /usr/local/bind9/dev/null c 1 3 && \ + mknod -m 666 /usr/local/bind9/dev/random c 1 8 && \ + mkdir -p /usr/local/bind9/data && \ + mkdir -p /usr/local/bind9/var/log + +COPY named /etc/sysconfig/named +COPY named.conf /usr/local/bind9/etc/named.conf +RUN /usr/local/bind9/sbin/rndc-confgen -a && \ + ln -s /usr/local/bind9/etc/rndc.key /etc/rndc.key && \ + ln -s /usr/local/bind9/etc/named.conf /etc/named.conf + +EXPOSE 53 953 + +CMD ["named", "-g", "-t", "/usr/local/bind9", "-c", "/etc/named.conf"] \ No newline at end of file diff --git a/bind9/9.18.24/22.03-lts-sp3/named b/bind9/9.18.24/22.03-lts-sp3/named new file mode 100644 index 0000000000000000000000000000000000000000..f521f505dc8e38783ead412f07c6fdf422da86ff --- /dev/null +++ b/bind9/9.18.24/22.03-lts-sp3/named @@ -0,0 +1,2 @@ +ROOTDIR=/usr/local/bind9 +OPTIONS=-4 \ No newline at end of file diff --git a/bind9/9.18.24/22.03-lts-sp3/named.conf b/bind9/9.18.24/22.03-lts-sp3/named.conf new file mode 100644 index 0000000000000000000000000000000000000000..b2d954e0c4106b52bd811e90dc34ed74cad3b82c --- /dev/null +++ b/bind9/9.18.24/22.03-lts-sp3/named.conf @@ -0,0 +1,39 @@ +Controls { + inet 127.0.0.1 allow { localhost; } keys { rndc-key; }; +}; + +include "/etc/rndc.key"; + +acl "internal-network" { + localhost; + 127.0.0.1/32; + 172.16.0.0/12; + 192.168.0.0/16; +}; + +options { + version "unknown"; + hostname "ns1.test.example.com"; + + directory "/var"; + dump-file "/data/cache_dump.db"; + statistics-file "/data/named_status.dat"; + pid-file "/var/run/named/named.pid"; + + listen-on port 53 { + internal-network; + }; + + allow-query { internal-network; }; + dnssec-validation no; + recursion yes; + allow-recursion { internal-network; }; + + notify yes; + max-transfer-time-in 60; + transfer-format many-answers; + transfers-in 10; + transfers-per-ns 2; + allow-transfer { none; }; + allow-update { none; }; +}; \ No newline at end of file diff --git a/bind9/README.md b/bind9/README.md new file mode 100644 index 0000000000000000000000000000000000000000..de72e468b8d319f8a98a529e365d9ffd8a7de9b5 --- /dev/null +++ b/bind9/README.md @@ -0,0 +1,30 @@ +# Bind9 + +# Quick reference + +- The official bind9 docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative) + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community) + +# Build reference + +1. Build images and push: +```shell +docker buildx build -t "openeuler/bind9:$TAG" --platform linux/amd64,linux/arm64 . --push +``` + +We are using `buildx` in here to generate multi-arch images, see more in [Docker Buildx](https://docs.docker.com/buildx/working-with-buildx/) + +2. Run: +```shell +docker run -d --name bind9 -p 30053:53 openeuler/bind9:{TAG} +``` + +# Supported tags and respective Dockerfile links + +- 9.18.24-oe2203sp3: bind9 v9.18.24, openEuler 22.03-LTS-SP3 + +## Operating System +Linux/Unix, ARM64 or x86-64 architecture. diff --git a/bind9/doc/image-info.yml b/bind9/doc/image-info.yml new file mode 100644 index 0000000000000000000000000000000000000000..1756afc53e898e6905d1ceacbb09d63509b5e316 --- /dev/null +++ b/bind9/doc/image-info.yml @@ -0,0 +1,92 @@ +name: bind9 +category: others +description: BIND9 (Berkeley Internet Name Domain 9)是一款开源的域名系统(DNS)软件,用于将域名转换为对应的IP地址,包括权威服务器、递归解析器和相关实用程序。 +environment: | + 本应用以容器镜像的方式供用户使用,运行于预置docker的Linux环境。Docker的推荐安装方式如下: + ## apt安装 + ### 1.更新系统软件包依赖 + ``` + sudo spt update + sudo apt install ca-certificates curl gnupg lsb-release + ``` + ### 2.添加Docker官方GPG密钥 + ``` + sudo mkdir -p /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg + sudo chmod a+r /etc/apt/keyrings/docker.gpg + ``` + ### 3.添加Docker官方APT源 + ``` + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + ``` + ### 4.再次更新软件包索引 + ``` + sudo apt update + ``` + ### 5.安装Docker + ``` + sudo apt install docker-ce docker-ce-cli containerd.io + ``` + + ## yum安装 + ### 1.安装yum-utils + ``` + sudo yum install -y yum-utils + ``` + ### 2.添加Docker源 + ``` + sudo yum-config-manager \ + > --add-repo \ + > https://download.docker.com/linux/centos/docker-ce.repo + ``` + ### 3.安装Docker + ``` + sudo yum install -y docker-ce docker-ce-cli containerd.io + ``` + + 注意,在openEuler环境安装docker时,可执行如下命令一键安装 + ``` + yum install -y docker + ``` + + ## 脚本安装 + ### 1.下载安装脚本 + ``` + curl -fsSL https://get.docker.com -o get-docker.sh + ``` + ### 2.使用root权限执行脚本 + ``` + sudo sh get-docker.sh + ``` + 使用脚本安装方式时,如果用户要指定安装的docker版本,需要自行修改`get-docker.sh`的源码内容。 + + ## 验证 + ``` + sudo docker run hello-world + ``` + +download: | + 获取容器镜像 + ``` + docker pull openeuler/bind9:{TAG} + ``` + +install: | + 启动容器 + ``` + docker run -d --name bind9 -p 30053:53 openeuler/bind9:{TAG} + ``` + 用户可根据自身需求,自定义启动选项。 + +license: MPL-2.0 license +similar_packages: + - PowerDNS: PowerDNS是另一个流行的开源DNS服务器软件。它提供高性能、可扩展性和灵活性,支持多种后端数据库(如 MySQL、PostgreSQL)和多种扩展模块。PowerDNS还具有DNSSEC支持和灵活的API。 + - NSD: NSD(Name Server Daemon)是一个轻量级的开源DNS服务器软件,专注于高性能和安全性。它设计简单,易于配置,并支持DNSSEC。NSD适用于高负载环境,特别是作为权威DNS服务器。 + - Unbound: Unbound是一个快速、适应性强的递归DNS解析器,也可以用作局部缓存DNS服务器。它专注于安全性和性能,并支持DNSSEC。Unbound的设计目标是简单、轻量级和易于管理。 + - Knot DNS: Knot DNS是一个高性能的开源DNS服务器,具有强大的安全性和可扩展性。它支持动态更新、DNSSEC、负载均衡和多线程处理,适用于大型网络和高负载环境。 +dependency: + - libcap-devel + - libuv-devel + - libnghttp2-devel + - openssl-devel + - perl \ No newline at end of file diff --git a/bind9/doc/picture/logo.png b/bind9/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..af3c204aff067f3555d1058f0667b4fafe397b78 Binary files /dev/null and b/bind9/doc/picture/logo.png differ diff --git a/bind9/meta.yml b/bind9/meta.yml new file mode 100644 index 0000000000000000000000000000000000000000..f596b4c36e6484ece193534b622f617f36d3488a --- /dev/null +++ b/bind9/meta.yml @@ -0,0 +1,2 @@ +9.18.24-oe2203sp3: + - bind9/9.18.24/22.03-lts-sp3/Dockerfile \ No newline at end of file