From f0a285f3c9d56928b39356410c014e5a7685b9ab Mon Sep 17 00:00:00 2001 From: Jonny Ervine Date: Wed, 19 Feb 2020 06:28:12 +0000 Subject: [PATCH 1/9] new file: Dockerfile new file: Jenkinsfile new file: UTC Initial commit --- Dockerfile | 34 ++++++++++++++++++++++++++++++++++ Jenkinsfile | 17 +++++++++++++++++ UTC | Bin 0 -> 127 bytes 3 files changed, 51 insertions(+) create mode 100644 Dockerfile create mode 100644 Jenkinsfile create mode 100644 UTC diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cb9d2a4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +# Base on latest (edge) alpine image +FROM harbor.ervine.dev/library/x86_64/alpine/alpine-3.11 + +MAINTAINER “Jonathan Ervine” + +# Install updates +# Create mediaservice user +ENV LANG='en_US.UTF-8' \ + LANGUAGE='en_US.UTF-8' \ + TERM='xterm' \ + HTPC_USER='mediaservice' \ + HTPC_GROUP='mediaservice' \ + HTPC_UID='1003' \ + HTPC_GID='1003' + +RUN echo http://dl-4.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories && \ + apk update && \ + apk -U upgrade && \ + apk -U add \ + python3 git + +ADD UTC /etc/localtime + +RUN git clone https://github.com/barbequesauce/watcher3 && \ + rm -rf /var/cache/apk/* && \ + addgroup -g $HTPC_GID $HTPC_GROUP && \ + adduser -D -u $HTPC_UID -G $HTPC_GROUP -H $HTPC_USER && \ + chown -R $HTPC_USER:$HTPC_GROUP /watcher3 + +EXPOSE 9090 + +USER $HTPC_USER + +CMD [ "/usr/bin/python3", "/watcher3/watcher.py", "--userdata=/config/" ] diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..c4f8f5e --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,17 @@ +node("docker-node") { + docker.withRegistry('https://harbor.ervine.dev', 'jenkins-to-harbor') { + + git branch: "3.11.3", url: "ssh://git@git.ervine.org:2222/jonny/x86_64-alpine-watcher", credentialsId: 'jenkins-to-git' + + sh "git rev-parse HEAD > .git/commit-id" + def commit_id = readFile('.git/commit-id').trim() + println commit_id + + stage "build" + def app = docker.build "library/x86_64/alpine/watcher" + + stage "publish" + app.push("${env.BUILD_NUMBER}") + app.push("latest") + } +} diff --git a/UTC b/UTC new file mode 100644 index 0000000000000000000000000000000000000000..c3b97f1a199421d6d9625b280316d99b85a4a4e8 GIT binary patch literal 127 ucmWHE%1kq2zyORu5fFv}5Ss Date: Fri, 28 Feb 2020 09:18:17 +0000 Subject: [PATCH 2/9] modified: Jenkinsfile Added automatic k8s deployment --- Jenkinsfile | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c4f8f5e..dcbcd87 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,12 +6,21 @@ node("docker-node") { sh "git rev-parse HEAD > .git/commit-id" def commit_id = readFile('.git/commit-id').trim() println commit_id + + try { + stage "build" + def app = docker.build "library/x86_64/alpine/watcher" - stage "build" - def app = docker.build "library/x86_64/alpine/watcher" - - stage "publish" - app.push("${env.BUILD_NUMBER}") - app.push("latest") + stage "publish" + app.push("${env.BUILD_NUMBER}") + app.push("latest") + + stage('Deploy on k8s'){ + sh "/usr/local/bin/kubectl -n media delete po watcher-0" + } + } + catch (err) { + currentBuild.result = 'FAILURE' + } } } From 30d56c327d4f45e9c2377eb5fc01dd799550bedd Mon Sep 17 00:00:00 2001 From: Jonny Ervine Date: Fri, 28 Feb 2020 09:54:27 +0000 Subject: [PATCH 3/9] modified: Dockerfile modified: Jenkinsfile Created 3.10.3 branch --- Dockerfile | 2 +- Jenkinsfile | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index cb9d2a4..68cdd32 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Base on latest (edge) alpine image -FROM harbor.ervine.dev/library/x86_64/alpine/alpine-3.11 +FROM harbor.ervine.dev/library/x86_64/alpine/alpine-3.10 MAINTAINER “Jonathan Ervine” diff --git a/Jenkinsfile b/Jenkinsfile index dcbcd87..f7c267f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,7 +1,7 @@ node("docker-node") { docker.withRegistry('https://harbor.ervine.dev', 'jenkins-to-harbor') { - git branch: "3.11.3", url: "ssh://git@git.ervine.org:2222/jonny/x86_64-alpine-watcher", credentialsId: 'jenkins-to-git' + git branch: "3.10.3", url: "ssh://git@git.ervine.org:2222/jonny/x86_64-alpine-watcher", credentialsId: 'jenkins-to-git' sh "git rev-parse HEAD > .git/commit-id" def commit_id = readFile('.git/commit-id').trim() @@ -9,14 +9,12 @@ node("docker-node") { try { stage "build" - def app = docker.build "library/x86_64/alpine/watcher" + def app = docker.build "library/x86_64/alpine-3.10/watcher" stage "publish" app.push("${env.BUILD_NUMBER}") app.push("latest") - stage('Deploy on k8s'){ - sh "/usr/local/bin/kubectl -n media delete po watcher-0" } } catch (err) { From 055d6e1f849a805313087e5652dbb7bd9a423c1f Mon Sep 17 00:00:00 2001 From: Jonny Ervine Date: Fri, 28 Feb 2020 09:55:27 +0000 Subject: [PATCH 4/9] modified: Jenkinsfile Deleted extra brace --- Jenkinsfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index f7c267f..4cf39ac 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -15,7 +15,6 @@ node("docker-node") { app.push("${env.BUILD_NUMBER}") app.push("latest") - } } catch (err) { currentBuild.result = 'FAILURE' From cacd9ca4c2cf48ba12d0bff8a66a00fbb44e93be Mon Sep 17 00:00:00 2001 From: Jonathan Ervine Date: Thu, 19 Mar 2020 09:44:25 +0800 Subject: [PATCH 5/9] new file: sidecar/Dockerfile new file: sidecar/Jenkinsfile new file: sidecar/start.sh Added sidecar image to load databases into ramdisk and periodically back them up --- sidecar/Dockerfile | 26 ++++++++++++++++++++++++++ sidecar/Jenkinsfile | 24 ++++++++++++++++++++++++ sidecar/start.sh | 23 +++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 sidecar/Dockerfile create mode 100644 sidecar/Jenkinsfile create mode 100644 sidecar/start.sh diff --git a/sidecar/Dockerfile b/sidecar/Dockerfile new file mode 100644 index 0000000..ec2b822 --- /dev/null +++ b/sidecar/Dockerfile @@ -0,0 +1,26 @@ +# Base on latest (edge) alpine image +FROM harbor.ervine.dev/library/x86_64/alpine/alpine-3.11 + +MAINTAINER “Jonathan Ervine” + +# Install updates +ENV LANG='en_US.UTF-8' \ + LANGUAGE='en_US.UTF-8' \ + TERM='xterm' \ + VERSION='develop' \ + WATCHER_USER='mediaservice' \ + WATCHER_GROUP='mediaservice' \ + WATCHER_UID='1003' \ + WATCHER_GID='1003' + +RUN echo http://dl-4.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories && \ + apk -U update && \ + apk -U upgrade && \ + apk -U add nfs-utils e2fsprogs util-linux&& \ + rm -rf /tmp/src && \ + rm -rf /var/cache/apk/* + +COPY start.sh /usr/local/bin/start.sh +RUN chmod 755 /usr/local/bin/start.sh + +CMD [ "/usr/local/bin/start.sh" ] diff --git a/sidecar/Jenkinsfile b/sidecar/Jenkinsfile new file mode 100644 index 0000000..b42e3e4 --- /dev/null +++ b/sidecar/Jenkinsfile @@ -0,0 +1,24 @@ +node("docker-node") { + docker.withRegistry('https://harbor.ervine.dev', 'jenkins-to-harbor') { + + git branch: "3.11.3", url: "ssh://git@git.ervine.org:2222/jonny/x86_64-alpine-watcher/sidecar", credentialsId: 'jenkins-to-git' + + sh "git rev-parse HEAD > .git/commit-id" + def commit_id = readFile('.git/commit-id').trim() + println commit_id + + try { + stage "build" + def app = docker.build "library/x86_64/alpine/watcher-sidecar" + + stage "publish" + app.push("${env.BUILD_NUMBER}") + app.push("3.11.3") + app.push("latest") + + } + catch (err) { + currentBuild.result = 'FAILURE' + } + } +} diff --git a/sidecar/start.sh b/sidecar/start.sh new file mode 100644 index 0000000..a14a91b --- /dev/null +++ b/sidecar/start.sh @@ -0,0 +1,23 @@ +#!/bin/sh +## +## Script to automate the copy of Watcher databases +## +echo -e 'Starting the sidecar container to periodically backup the sonarr databases' +echo -e 'Create the ramdisk file' +dd if=/dev/zero of=/ramdisk/image.ext4 count=0 bs=1 seek=400M +echo -e 'Create filesystem on ramdisk file' +mkfs.ext4 /ramdisk/image.ext4 +echo -e 'Mount the ramdisk file to /mnt/watcher-ramdisk-mount' +mount /ramdisk/image.ext4 /mnt/watcher-ramdisk-mount +echo -e 'Copy the config from the remote share to the ramdisk' +cp -fvp /watcher-config/*.* /mnt/watcher-ramdisk-mount +echo -e 'Set up the filesystem freeze, copy, unfreeze loop' +while true; do + sleep 890 + date + sync /mnt/watcher-ramdisk-mount/*.* + fsfreeze --freeze /mnt/watcher-ramdisk-mount + sleep 10 + cp -fvp /mnt/watcher-ramdisk-mount/*.* /watcher-config/ + fsfreeze --unfreeze /mnt/watcher-ramdisk-mount +done From 53dc85fb290797016ec95f2e5d435560cb51dd0f Mon Sep 17 00:00:00 2001 From: Jonathan Ervine Date: Thu, 19 Mar 2020 10:30:03 +0800 Subject: [PATCH 6/9] deleted: sidecar/Dockerfile deleted: sidecar/Jenkinsfile deleted: sidecar/start.sh Deleted sidecar - moving to a separate repo --- sidecar/Dockerfile | 26 -------------------------- sidecar/Jenkinsfile | 24 ------------------------ sidecar/start.sh | 23 ----------------------- 3 files changed, 73 deletions(-) delete mode 100644 sidecar/Dockerfile delete mode 100644 sidecar/Jenkinsfile delete mode 100644 sidecar/start.sh diff --git a/sidecar/Dockerfile b/sidecar/Dockerfile deleted file mode 100644 index ec2b822..0000000 --- a/sidecar/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# Base on latest (edge) alpine image -FROM harbor.ervine.dev/library/x86_64/alpine/alpine-3.11 - -MAINTAINER “Jonathan Ervine” - -# Install updates -ENV LANG='en_US.UTF-8' \ - LANGUAGE='en_US.UTF-8' \ - TERM='xterm' \ - VERSION='develop' \ - WATCHER_USER='mediaservice' \ - WATCHER_GROUP='mediaservice' \ - WATCHER_UID='1003' \ - WATCHER_GID='1003' - -RUN echo http://dl-4.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories && \ - apk -U update && \ - apk -U upgrade && \ - apk -U add nfs-utils e2fsprogs util-linux&& \ - rm -rf /tmp/src && \ - rm -rf /var/cache/apk/* - -COPY start.sh /usr/local/bin/start.sh -RUN chmod 755 /usr/local/bin/start.sh - -CMD [ "/usr/local/bin/start.sh" ] diff --git a/sidecar/Jenkinsfile b/sidecar/Jenkinsfile deleted file mode 100644 index b42e3e4..0000000 --- a/sidecar/Jenkinsfile +++ /dev/null @@ -1,24 +0,0 @@ -node("docker-node") { - docker.withRegistry('https://harbor.ervine.dev', 'jenkins-to-harbor') { - - git branch: "3.11.3", url: "ssh://git@git.ervine.org:2222/jonny/x86_64-alpine-watcher/sidecar", credentialsId: 'jenkins-to-git' - - sh "git rev-parse HEAD > .git/commit-id" - def commit_id = readFile('.git/commit-id').trim() - println commit_id - - try { - stage "build" - def app = docker.build "library/x86_64/alpine/watcher-sidecar" - - stage "publish" - app.push("${env.BUILD_NUMBER}") - app.push("3.11.3") - app.push("latest") - - } - catch (err) { - currentBuild.result = 'FAILURE' - } - } -} diff --git a/sidecar/start.sh b/sidecar/start.sh deleted file mode 100644 index a14a91b..0000000 --- a/sidecar/start.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -## -## Script to automate the copy of Watcher databases -## -echo -e 'Starting the sidecar container to periodically backup the sonarr databases' -echo -e 'Create the ramdisk file' -dd if=/dev/zero of=/ramdisk/image.ext4 count=0 bs=1 seek=400M -echo -e 'Create filesystem on ramdisk file' -mkfs.ext4 /ramdisk/image.ext4 -echo -e 'Mount the ramdisk file to /mnt/watcher-ramdisk-mount' -mount /ramdisk/image.ext4 /mnt/watcher-ramdisk-mount -echo -e 'Copy the config from the remote share to the ramdisk' -cp -fvp /watcher-config/*.* /mnt/watcher-ramdisk-mount -echo -e 'Set up the filesystem freeze, copy, unfreeze loop' -while true; do - sleep 890 - date - sync /mnt/watcher-ramdisk-mount/*.* - fsfreeze --freeze /mnt/watcher-ramdisk-mount - sleep 10 - cp -fvp /mnt/watcher-ramdisk-mount/*.* /watcher-config/ - fsfreeze --unfreeze /mnt/watcher-ramdisk-mount -done From 55c9fca389ab60958995710002faebe024484680 Mon Sep 17 00:00:00 2001 From: Jonathan Ervine Date: Mon, 6 Apr 2020 15:19:31 +0800 Subject: [PATCH 7/9] modified: Dockerfile modified: Jenkinsfile Added k8s auto-deploy to jenkinsfile --- Dockerfile | 1 + Jenkinsfile | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 68cdd32..caa0d2a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,7 @@ MAINTAINER “Jonathan Ervine” # Create mediaservice user ENV LANG='en_US.UTF-8' \ LANGUAGE='en_US.UTF-8' \ + BUILD_DATE='06-04-2020' \ TERM='xterm' \ HTPC_USER='mediaservice' \ HTPC_GROUP='mediaservice' \ diff --git a/Jenkinsfile b/Jenkinsfile index 4cf39ac..31a740b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -14,10 +14,10 @@ node("docker-node") { stage "publish" app.push("${env.BUILD_NUMBER}") app.push("latest") - - } - catch (err) { - currentBuild.result = 'FAILURE' + + stage('Deploy on K8s'){ + sh "/usr/local/bin/kubectl -n media delete po watcher-0" + } } } } From 94e4e6d3440e9ead39ad036051c55475ea19e22d Mon Sep 17 00:00:00 2001 From: Jonathan Ervine Date: Fri, 5 Jun 2020 15:29:05 +0800 Subject: [PATCH 8/9] modified: Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 31a740b..d1e6804 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,7 +1,7 @@ node("docker-node") { docker.withRegistry('https://harbor.ervine.dev', 'jenkins-to-harbor') { - git branch: "3.10.3", url: "ssh://git@git.ervine.org:2222/jonny/x86_64-alpine-watcher", credentialsId: 'jenkins-to-git' + git branch: "3.10.5", url: "ssh://git@git.ervine.org/jonny/x86_64-alpine-watcher", credentialsId: 'jenkins-to-git' sh "git rev-parse HEAD > .git/commit-id" def commit_id = readFile('.git/commit-id').trim() From 5fe45da9dcef667313266c454a52d4ee19e3bb0a Mon Sep 17 00:00:00 2001 From: Jonathan Ervine Date: Fri, 5 Jun 2020 15:31:28 +0800 Subject: [PATCH 9/9] modified: Jenkinsfile Fixed try statement --- Jenkinsfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index d1e6804..129fb09 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -19,5 +19,8 @@ node("docker-node") { sh "/usr/local/bin/kubectl -n media delete po watcher-0" } } + catch (err) { + currentBuild.result = 'FAILURE' + } } }