Skip to content

Commit deaba12

Browse files
authored
Merge pull request #20 from linuxserver/buster-backports
Add Buster/Stretch backports to support backported kernels, add bc needed for some debian kernels
2 parents faff34a + 75ae4b8 commit deaba12

File tree

8 files changed

+107
-76
lines changed

8 files changed

+107
-76
lines changed

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
github: linuxserver
12
open_collective: linuxserver
23
custom: ["https://www.wireguard.com/donations/",]

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ RUN \
1313
echo "**** install dependencies ****" && \
1414
apt-get update && \
1515
apt-get install -y \
16+
bc \
1617
curl \
1718
dkms \
1819
gnupg \

Dockerfile.aarch64

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ RUN \
1313
echo "**** install dependencies ****" && \
1414
apt-get update && \
1515
apt-get install -y \
16+
bc \
1617
curl \
1718
dkms \
1819
gnupg \

Dockerfile.armhf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ RUN \
1313
echo "**** install dependencies ****" && \
1414
apt-get update && \
1515
apt-get install -y \
16+
bc \
1617
curl \
1718
dkms \
1819
gnupg \

Jenkinsfile

Lines changed: 76 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,9 @@ pipeline {
347347
sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
348348
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
349349
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
350-
sh "docker push lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
350+
retry(5) {
351+
sh "docker push lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
352+
}
351353
sh '''docker rmi \
352354
${IMAGE}:arm32v7-${META_TAG} \
353355
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
@@ -374,7 +376,9 @@ pipeline {
374376
sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
375377
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
376378
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
377-
sh "docker push lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
379+
retry(5) {
380+
sh "docker push lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
381+
}
378382
sh '''docker rmi \
379383
${IMAGE}:arm64v8-${META_TAG} \
380384
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
@@ -539,18 +543,22 @@ pipeline {
539543
passwordVariable: 'QUAYPASS'
540544
]
541545
]) {
546+
retry(5) {
547+
sh '''#! /bin/bash
548+
set -e
549+
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
550+
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
551+
echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
552+
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
553+
for PUSHIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
554+
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
555+
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
556+
docker push ${PUSHIMAGE}:latest
557+
docker push ${PUSHIMAGE}:${META_TAG}
558+
done
559+
'''
560+
}
542561
sh '''#! /bin/bash
543-
set -e
544-
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
545-
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
546-
echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
547-
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
548-
for PUSHIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
549-
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
550-
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
551-
docker push ${PUSHIMAGE}:latest
552-
docker push ${PUSHIMAGE}:${META_TAG}
553-
done
554562
for DELETEIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
555563
docker rmi \
556564
${DELETEIMAGE}:${META_TAG} \
@@ -581,59 +589,61 @@ pipeline {
581589
passwordVariable: 'QUAYPASS'
582590
]
583591
]) {
584-
sh '''#! /bin/bash
585-
set -e
586-
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
587-
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
588-
echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
589-
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
590-
if [ "${CI}" == "false" ]; then
591-
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
592-
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
593-
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
594-
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
595-
fi
596-
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}"; do
597-
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
598-
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
599-
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
600-
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
601-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
602-
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
603-
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
604-
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
605-
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
606-
docker push ${MANIFESTIMAGE}:amd64-latest
607-
docker push ${MANIFESTIMAGE}:arm32v7-latest
608-
docker push ${MANIFESTIMAGE}:arm64v8-latest
609-
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
610-
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
611-
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
612-
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
613-
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
614-
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
615-
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
616-
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
617-
docker manifest push --purge ${MANIFESTIMAGE}:latest
618-
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
619-
done
620-
for LEGACYIMAGE in "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
621-
docker tag ${IMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:amd64-${META_TAG}
622-
docker tag ${IMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-${META_TAG}
623-
docker tag ${IMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-${META_TAG}
624-
docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:latest
625-
docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:${META_TAG}
626-
docker tag ${LEGACYIMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-latest
627-
docker tag ${LEGACYIMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-latest
628-
docker push ${LEGACYIMAGE}:amd64-${META_TAG}
629-
docker push ${LEGACYIMAGE}:arm32v7-${META_TAG}
630-
docker push ${LEGACYIMAGE}:arm64v8-${META_TAG}
631-
docker push ${LEGACYIMAGE}:latest
632-
docker push ${LEGACYIMAGE}:${META_TAG}
633-
docker push ${LEGACYIMAGE}:arm32v7-latest
634-
docker push ${LEGACYIMAGE}:arm64v8-latest
635-
done
636-
'''
592+
retry(5) {
593+
sh '''#! /bin/bash
594+
set -e
595+
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
596+
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
597+
echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
598+
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
599+
if [ "${CI}" == "false" ]; then
600+
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
601+
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
602+
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
603+
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
604+
fi
605+
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}"; do
606+
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
607+
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
608+
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
609+
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
610+
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
611+
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
612+
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
613+
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
614+
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
615+
docker push ${MANIFESTIMAGE}:amd64-latest
616+
docker push ${MANIFESTIMAGE}:arm32v7-latest
617+
docker push ${MANIFESTIMAGE}:arm64v8-latest
618+
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
619+
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
620+
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
621+
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
622+
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
623+
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
624+
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
625+
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
626+
docker manifest push --purge ${MANIFESTIMAGE}:latest
627+
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
628+
done
629+
for LEGACYIMAGE in "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
630+
docker tag ${IMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:amd64-${META_TAG}
631+
docker tag ${IMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-${META_TAG}
632+
docker tag ${IMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-${META_TAG}
633+
docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:latest
634+
docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:${META_TAG}
635+
docker tag ${LEGACYIMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-latest
636+
docker tag ${LEGACYIMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-latest
637+
docker push ${LEGACYIMAGE}:amd64-${META_TAG}
638+
docker push ${LEGACYIMAGE}:arm32v7-${META_TAG}
639+
docker push ${LEGACYIMAGE}:arm64v8-${META_TAG}
640+
docker push ${LEGACYIMAGE}:latest
641+
docker push ${LEGACYIMAGE}:${META_TAG}
642+
docker push ${LEGACYIMAGE}:arm32v7-latest
643+
docker push ${LEGACYIMAGE}:arm64v8-latest
644+
done
645+
'''
646+
}
637647
sh '''#! /bin/bash
638648
for DELETEIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
639649
docker rmi \

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ If the environment variable `PEERS` is set to a number, the container will run i
177177

178178
Variables `SERVERURL`, `SERVERPORT`, `INTERNAL_SUBNET` and `PEERDNS` are optional variables used for server mode. Any changes to these environment variables will trigger regeneration of server and peer confs. Peer/client confs will be recreated with existing private/public keys. Delete the peer folders for the keys to be recreated along with the confs.
179179

180-
To add more peers/clients later on, you can run `docker exec -it wireguard /app/add-peer` while the container is running.
180+
To add more peers/clients later on, you increment the `PEERS` environment variable and recreate the container.
181181

182182
To display the QR codes of active peers again, you can use the following command and list the peer numbers as arguments: `docker exec -it wireguard /app/show-peer 1 4 5` (Keep in mind that the QR codes are also stored as PNGs in the config folder).
183183

@@ -257,6 +257,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
257257

258258
## Versions
259259

260+
* **28.04.20:** - Add Buster/Stretch backports repos for Debian. Tested with OMV 5 and OMV 4 (on kernel 4.19.0-0.bpo.8-amd64).
260261
* **20.04.20:** - Fix typo in client mode conf existence check.
261262
* **13.04.20:** - Fix bug that forced conf recreation on every start.
262263
* **08.04.20:** - Add arm32/64 builds and enable multi-arch (rpi4 with ubuntu and raspbian buster tested). Add CoreDNS for `PEERDNS=auto` setting. Update the `add-peer`/`show-peer` scripts to utilize the templates and the `INTERNAL_SUBNET` var (previously missed, oops).

readme-vars.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ app_setup_block: |
6767
6868
Variables `SERVERURL`, `SERVERPORT`, `INTERNAL_SUBNET` and `PEERDNS` are optional variables used for server mode. Any changes to these environment variables will trigger regeneration of server and peer confs. Peer/client confs will be recreated with existing private/public keys. Delete the peer folders for the keys to be recreated along with the confs.
6969
70-
To add more peers/clients later on, you can run `docker exec -it wireguard /app/add-peer` while the container is running.
70+
To add more peers/clients later on, you increment the `PEERS` environment variable and recreate the container.
7171
7272
To display the QR codes of active peers again, you can use the following command and list the peer numbers as arguments: `docker exec -it wireguard /app/show-peer 1 4 5` (Keep in mind that the QR codes are also stored as PNGs in the config folder).
7373
@@ -78,6 +78,7 @@ app_setup_block: |
7878
7979
# changelog
8080
changelogs:
81+
- { date: "28.04.20:", desc: "Add Buster/Stretch backports repos for Debian. Tested with OMV 5 and OMV 4 (on kernel 4.19.0-0.bpo.8-amd64)." }
8182
- { date: "20.04.20:", desc: "Fix typo in client mode conf existence check." }
8283
- { date: "13.04.20:", desc: "Fix bug that forced conf recreation on every start." }
8384
- { date: "08.04.20:", desc: "Add arm32/64 builds and enable multi-arch (rpi4 with ubuntu and raspbian buster tested). Add CoreDNS for `PEERDNS=auto` setting. Update the `add-peer`/`show-peer` scripts to utilize the templates and the `INTERNAL_SUBNET` var (previously missed, oops)." }

root/etc/cont-init.d/30-config

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ elif (uname -r | grep -q 'v7+') || (uname -r | grep -q 'v7l+'); then
2020
wireguard
2121
elif uname -v | grep -q 'Ubuntu'; then
2222
echo "Attempting to install kernel headers from Ubuntu Xenial repo"
23-
curl -s http://archive.ubuntu.com/ubuntu/dists/xenial/Release.gpg | apt-key add -
2423
echo -e \
2524
"deb http://archive.ubuntu.com/ubuntu/ xenial main restricted\ndeb-src http://archive.ubuntu.com/ubuntu/ xenial main restricted\n\ndeb http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted\ndeb-src http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted" \
2625
> /etc/apt/sources.list.d/xenial.list
@@ -38,22 +37,38 @@ elif uname -v | grep -q 'Debian'; then
3837
echo "Debian host detected, attempting to install kernel headers from Debian Buster repo"
3938
curl -s https://ftp-master.debian.org/keys/archive-key-10.asc | apt-key add -
4039
echo -e \
41-
"deb http://deb.debian.org/debian buster main contrib non-free\ndeb-src http://deb.debian.org/debian buster main contrib non-free" \
40+
"deb http://deb.debian.org/debian buster main contrib non-free\ndeb-src http://deb.debian.org/debian buster main contrib non-free\ndeb http://deb.debian.org/debian buster-backports main contrib non-free\ndeb-src http://deb.debian.org/debian buster-backports main contrib non-free" \
4241
> /etc/apt/sources.list.d/debian.list
4342
apt-get update
4443
if apt-cache show linux-headers-$(uname -r) 2&>1 >/dev/null; then
45-
apt-get install -y \
46-
linux-headers-$(uname -r) \
47-
wireguard
44+
if uname -r | grep -qs "bpo"; then
45+
echo "Backported kernel detected"
46+
apt-get install -y -t buster-backports \
47+
linux-headers-$(uname -r)
48+
apt-get install -y \
49+
wireguard
50+
else
51+
apt-get install -y \
52+
linux-headers-$(uname -r) \
53+
wireguard
54+
fi
4855
else
4956
echo "Attempting to install kernel headers from the Debian Stretch repo"
5057
curl -s https://ftp-master.debian.org/keys/archive-key-9.asc | apt-key add -
5158
sed -i 's/buster/stretch/g' /etc/apt/sources.list.d/debian.list
5259
apt-get update
5360
if apt-cache show linux-headers-$(uname -r) 2&>1 >/dev/null; then
54-
apt-get install -y \
55-
linux-headers-$(uname -r) \
56-
wireguard
61+
if uname -r | grep -qs "bpo"; then
62+
echo "Backported kernel detected"
63+
apt-get install -y -t stretch-backports \
64+
linux-headers-$(uname -r)
65+
apt-get install -y \
66+
wireguard
67+
else
68+
apt-get install -y \
69+
linux-headers-$(uname -r) \
70+
wireguard
71+
fi
5772
else
5873
echo "No kernel headers found in Debian repos!! Will try the headers from host (if mapped), may or may not work"
5974
apt-get install -y \

0 commit comments

Comments
 (0)