Fix #65593
add traefik service add traefik sysusers file noextract tarball, because we need a clean build environment. Otherwise the go tests will fail, due to service and sysusers files in the repo.
This commit is contained in:
parent
bb2af51bd9
commit
1c21e98c0c
25
PKGBUILD
25
PKGBUILD
@ -2,28 +2,45 @@
|
|||||||
|
|
||||||
pkgname=traefik
|
pkgname=traefik
|
||||||
pkgver=2.1.4
|
pkgver=2.1.4
|
||||||
pkgrel=2
|
pkgrel=3
|
||||||
pkgdesc="Modern reverse proxy written in Go"
|
pkgdesc="Modern reverse proxy written in Go"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
url="https://containo.us/traefik/"
|
url="https://containo.us/traefik/"
|
||||||
license=('MIT')
|
license=('MIT')
|
||||||
makedepends=('go-pie' 'git' 'go-bindata')
|
makedepends=('go-pie' 'git' 'go-bindata')
|
||||||
depends=('glibc')
|
depends=('glibc')
|
||||||
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/containous/traefik/releases/download/v${pkgver}/traefik-v${pkgver}.src.tar.gz")
|
backup=('etc/traefik/traefik.toml'
|
||||||
sha512sums=('c45d8b90bc1fc437f38102c03f7d5383b94e5ee362d2c2c837085d80a5007d0432989abc5698267260fb9ba8b22561c68012b47ad0367bc221d501b776ed8992')
|
'etc/traefik/traefik.yaml'
|
||||||
|
'etc/traefik/traefik.yml')
|
||||||
|
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/containous/traefik/releases/download/v${pkgver}/traefik-v${pkgver}.src.tar.gz"
|
||||||
|
'traefik.service'
|
||||||
|
'traefik.sysusers')
|
||||||
|
noextract=("${pkgname}-${pkgver}.tar.gz")
|
||||||
|
sha512sums=('c45d8b90bc1fc437f38102c03f7d5383b94e5ee362d2c2c837085d80a5007d0432989abc5698267260fb9ba8b22561c68012b47ad0367bc221d501b776ed8992'
|
||||||
|
'474dc8274d160bf46a46edf8855378331521b108a767345fb8cb201f23576ceadbee81560d15cf98cac3a978eb24b49f951524da828ffda720797f7ab38bd49c'
|
||||||
|
'5fecfed5df77bf28c2c976ebaebedb030904d41509e740821140a4889bda20327f416e78f8d19b0ee78c8bc422d1907ce05ef3562e4d3e36ddfbdbea5e860b2a')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
mkdir "${srcdir}/${pkgname}-${pkgver}"
|
||||||
|
tar xfvz "${srcdir}/${pkgname}-${pkgver}.tar.gz" -C "${srcdir}/${pkgname}-${pkgver}"
|
||||||
|
}
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
|
cd "${srcdir}/${pkgname}-${pkgver}"
|
||||||
go generate
|
go generate
|
||||||
cd cmd/traefik
|
cd cmd/traefik
|
||||||
go build -trimpath -ldflags "-extldflags ${LDFLAGS}"
|
go build -trimpath -ldflags "-extldflags ${LDFLAGS}"
|
||||||
}
|
}
|
||||||
|
|
||||||
check() {
|
check() {
|
||||||
|
cd "${srcdir}/${pkgname}-${pkgver}"
|
||||||
go test ./...
|
go test ./...
|
||||||
}
|
}
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
|
cd "${srcdir}/${pkgname}-${pkgver}"
|
||||||
install -Dm755 cmd/traefik/"${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
|
install -Dm755 cmd/traefik/"${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
|
||||||
install -Dm644 LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
|
install -Dm644 LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
|
||||||
install -Dm644 contrib/systemd/traefik.service "${pkgdir}/usr/lib/systemd/system/traefik.service"
|
install -Dm644 "${srcdir}/traefik.service" "${pkgdir}/usr/lib/systemd/system/traefik.service"
|
||||||
|
install -Dm644 "${srcdir}/traefik.sysusers" "${pkgdir}/usr/lib/sysusers.d/traefik.conf"
|
||||||
}
|
}
|
||||||
|
41
traefik.service
Normal file
41
traefik.service
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Traefik
|
||||||
|
Documentation=https://docs.traefik.io
|
||||||
|
After=network-online.target
|
||||||
|
AssertFileIsExecutable=/usr/bin/traefik
|
||||||
|
AssertPathExists=/etc/traefik/traefik.toml
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
# Run traefik as its own user (create new user with: useradd -r -s /bin/false -U -M traefik)
|
||||||
|
User=traefik
|
||||||
|
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||||
|
|
||||||
|
# configure service behavior
|
||||||
|
Type=notify
|
||||||
|
ExecStart=/usr/bin/traefik --configFile=/etc/traefik/traefik.toml
|
||||||
|
Restart=always
|
||||||
|
WatchdogSec=1s
|
||||||
|
|
||||||
|
# lock down system access
|
||||||
|
# prohibit any operating system and configuration modification
|
||||||
|
ProtectSystem=strict
|
||||||
|
# create separate, new (and empty) /tmp and /var/tmp filesystems
|
||||||
|
PrivateTmp=true
|
||||||
|
# make /home directories inaccessible
|
||||||
|
ProtectHome=true
|
||||||
|
# turns off access to physical devices (/dev/...)
|
||||||
|
PrivateDevices=true
|
||||||
|
# make kernel settings (procfs and sysfs) read-only
|
||||||
|
ProtectKernelTunables=true
|
||||||
|
# make cgroups /sys/fs/cgroup read-only
|
||||||
|
ProtectControlGroups=true
|
||||||
|
|
||||||
|
# allow writing of acme.json
|
||||||
|
ReadWritePaths=/etc/traefik/acme.json
|
||||||
|
# depending on log and entrypoint configuration, you may need to allow writing to other paths, too
|
||||||
|
|
||||||
|
# limit number of processes in this unit
|
||||||
|
#LimitNPROC=1
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
1
traefik.sysusers
Normal file
1
traefik.sysusers
Normal file
@ -0,0 +1 @@
|
|||||||
|
u traefik - "traefik daemon" -
|
Loading…
x
Reference in New Issue
Block a user