mirror of
https://github.com/notherealmarco/coredns-deployment.git
synced 2025-05-05 04:28:38 +02:00
debian: add package building (#20)
This only builds on a debian system, because it uses the dpkg-helper and other utils. But it builds! Multiarch is supported, you can easily build a package for amd64, arm and arm64. The Makefile does this by default. Massively update the systemd file.
This commit is contained in:
parent
3313ba9e12
commit
aaf5dae5dd
10 changed files with 110 additions and 8 deletions
10
Makefile
Normal file
10
Makefile
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Makefile for building packages for CoreDNS.
|
||||||
|
|
||||||
|
# Build the debian packages
|
||||||
|
.PHONY: debian
|
||||||
|
debian:
|
||||||
|
dpkg-buildpackage -us -uc -b --target-arch amd64
|
||||||
|
dpkg-buildpackage -us -uc -b --target-arch arm
|
||||||
|
dpkg-buildpackage -us -uc -b --target-arch arm64
|
||||||
|
# debs are one up
|
||||||
|
ls ../*.deb
|
20
README.md
20
README.md
|
@ -1,8 +1,9 @@
|
||||||
# deployment
|
# Deployment
|
||||||
|
|
||||||
Scripts, utilities, and examples for deploying CoreDNS.
|
Scripts, utilities, and examples for deploying CoreDNS.
|
||||||
|
|
||||||
|
|
||||||
## MacOS
|
## MacOS
|
||||||
|
|
||||||
The default settings will proxy all requests to hostnames not found in your host file to Google's DNS-over-HTTPS.
|
The default settings will proxy all requests to hostnames not found in your host file to Google's DNS-over-HTTPS.
|
||||||
|
|
||||||
To install:
|
To install:
|
||||||
|
@ -20,3 +21,18 @@ Using CoreDNS as your default resolver:
|
||||||
- Type `127.0.0.1` and hit enter
|
- Type `127.0.0.1` and hit enter
|
||||||
- Click `OK`
|
- Click `OK`
|
||||||
- Click `Apply`
|
- Click `Apply`
|
||||||
|
|
||||||
|
# Debian
|
||||||
|
|
||||||
|
On a debian system:
|
||||||
|
|
||||||
|
- Run `dpkg-buildpackage -us -uc -b --target-arch ARCH`
|
||||||
|
Where ARCH can be any of the released architectures, like "amd64" or "arm".
|
||||||
|
- Most users will just run: `dpkg-buildpackage -us -uc -b`
|
||||||
|
|
||||||
|
To install:
|
||||||
|
|
||||||
|
- Run `dpkg -i coredns_0.9.10-0~9.20_amd64.deb`.
|
||||||
|
|
||||||
|
This installs the coredns binary in /usr/bin, adds a coredns user (homedir set to /var/lib/coredns)
|
||||||
|
and a small Corefile /etc/coredns.
|
||||||
|
|
9
debian/Corefile
vendored
Normal file
9
debian/Corefile
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Default Corefile, see https://coredns.io for more information.
|
||||||
|
|
||||||
|
# Answer every below the root, with the whoami plugin. Log all queries
|
||||||
|
# and errors on standard output.
|
||||||
|
. {
|
||||||
|
whoami # coredns.io/plugins/whoami
|
||||||
|
log # coredns.io/plugins/log
|
||||||
|
errors # coredns.io/plugins/errors
|
||||||
|
}
|
5
debian/changelog
vendored
Normal file
5
debian/changelog
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
coredns (0-0) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
|
* Package for Debian.
|
||||||
|
|
||||||
|
-- Miek Gieben <miek@coredns.io> Sat, 11 Nov 2017 09:52:00 +0000
|
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
10
|
8
debian/control
vendored
Normal file
8
debian/control
vendored
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
Source: coredns
|
||||||
|
Maintainer: Miek Gieben <miek@coredns.io>
|
||||||
|
Build-Depends: debhelper (>= 9), ca-certificates, wget, dh-systemd
|
||||||
|
|
||||||
|
Package: coredns
|
||||||
|
Architecture: any
|
||||||
|
Description: DNS server that chains plugins
|
||||||
|
Depends: adduser
|
20
debian/coredns.service
vendored
Normal file
20
debian/coredns.service
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
[Unit]
|
||||||
|
Description=CoreDNS DNS server
|
||||||
|
Documentation=https://coredns.io
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
PermissionsStartOnly=true
|
||||||
|
LimitNOFILE=1048576
|
||||||
|
LimitNPROC=512
|
||||||
|
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||||
|
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||||
|
NoNewPrivileges=true
|
||||||
|
User=coredns
|
||||||
|
WorkingDirectory=~
|
||||||
|
ExecStart=/usr/bin/coredns -conf=/etc/coredns/Corefile
|
||||||
|
ExecReload=/bin/kill -SIGUSR1 $MAINPID
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
29
debian/rules
vendored
Executable file
29
debian/rules
vendored
Executable file
|
@ -0,0 +1,29 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
VERSION := 0.9.10
|
||||||
|
|
||||||
|
DEB_HOST_ARCH := $(DEB_TARGET_ARCH)
|
||||||
|
DISTRIBUTION := $(shell lsb_release -sr)
|
||||||
|
PACKAGEVERSION := $(VERSION)-0~$(DISTRIBUTION)0
|
||||||
|
TARBALL := coredns_$(VERSION)_linux_$(DEB_TARGET_ARCH).tgz
|
||||||
|
URL := https://github.com/coredns/coredns/releases/download/v$(VERSION)/$(TARBALL)
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh_clean
|
||||||
|
dh $@ --with systemd
|
||||||
|
|
||||||
|
override_dh_strip:
|
||||||
|
# don't perform dh_strip
|
||||||
|
echo dh_strip
|
||||||
|
|
||||||
|
override_dh_auto_clean:
|
||||||
|
override_dh_auto_test:
|
||||||
|
override_dh_auto_build:
|
||||||
|
override_dh_auto_install:
|
||||||
|
wget -N --progress=dot:mega $(URL)
|
||||||
|
mkdir -p debian/coredns/usr/bin debian/coredns/etc/coredns
|
||||||
|
tar -xf $(TARBALL) -C debian/coredns/usr/bin
|
||||||
|
cp debian/Corefile debian/coredns/etc/coredns/Corefile
|
||||||
|
|
||||||
|
override_dh_gencontrol:
|
||||||
|
dh_gencontrol -- -v$(PACKAGEVERSION)
|
|
@ -1,4 +1,5 @@
|
||||||
# Systemd Service File
|
# Systemd Service File
|
||||||
|
|
||||||
Use `coredns.service` as a systemd service file. It defaults to a coredns with a homedir of `/home/coredns`
|
Use `coredns.service` as a systemd service file. It defaults to using a "coredns" user with
|
||||||
and the binary lives in `/opt/bin` and the config in `/etc/coredns/Corefile`.
|
a homedir of `/var/lib/coredns` and the binary lives in `/usr/bin` and the config in
|
||||||
|
`/etc/coredns/Corefile`.
|
||||||
|
|
|
@ -5,11 +5,14 @@ After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
PermissionsStartOnly=true
|
PermissionsStartOnly=true
|
||||||
LimitNOFILE=8192
|
LimitNOFILE=1048576
|
||||||
|
LimitNPROC=512
|
||||||
|
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||||
|
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||||
|
NoNewPrivileges=true
|
||||||
User=coredns
|
User=coredns
|
||||||
WorkingDirectory=/home/coredns
|
WorkingDirectory=~
|
||||||
ExecStartPre=/sbin/setcap cap_net_bind_service=+ep /opt/bin/coredns
|
ExecStart=/usr/bin/coredns -conf=/etc/coredns/Corefile
|
||||||
ExecStart=/opt/bin/coredns -conf=/etc/coredns/Corefile
|
|
||||||
ExecReload=/bin/kill -SIGUSR1 $MAINPID
|
ExecReload=/bin/kill -SIGUSR1 $MAINPID
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue