Compare commits

...

20 Commits

Author SHA1 Message Date
LinuxServer-CI
b6a321aee6 Bot Updating Package Versions 2019-03-25 02:02:20 +01:00
Ryan Kuba
3d34a9cf03 Merge pull request #124 from thelamer/release-4.2
Switching to new Base images, shift to arm32v7 tag.
2019-03-24 17:10:13 -07:00
thelamer
e0a76e29e2 Switching to new Base images, shift to arm32v7 tag. 2019-03-23 22:18:13 -07:00
LinuxServer-CI
13f64cbc4b Bot Updating Package Versions 2019-03-22 00:31:34 +00:00
LinuxServer-CI
2c696d51b0 Bot Updating Package Versions 2019-03-07 19:02:51 -05:00
LinuxServer-CI
780b22728e Bot Updating Templated Files 2019-03-07 18:14:52 -05:00
aptalca
9417e1f9c4 Merge pull request #121 from thelamer/release-4.2
libiconv shifted to community repos- release 4.2
2019-03-07 18:14:02 -05:00
thelamer
5fb3338564 libiconv shifted to community repos 2019-03-07 14:12:48 -08:00
LinuxServer-CI
89322d5956 Bot Updating Package Versions 2019-03-02 00:28:07 +00:00
LinuxServer-CI
267e3ef786 Bot Updating Templated Files 2019-03-01 18:35:41 -05:00
saarg
5de6faf27f Merge pull request #114 from thelamer/release-4.2
switching back to clone and checkout release-4.2
2019-02-17 22:54:37 +01:00
thelamer
dab37e4ecd bumping to xmltv 0.5.70 and pulling it from github instead of sourceforge 2019-02-17 12:42:34 -08:00
thelamer
6ab17ce8b7 adding jq package for commit parsing on local build 2019-02-17 12:15:38 -08:00
thelamer
81c71ee54d switching back to clone and checkout 2019-02-17 10:41:49 -08:00
saarg
a5fe08ef84 Merge pull request #111 from thelamer/release-4.2
Fix for picons Release 4.2
2019-02-16 21:33:35 +01:00
thelamer
65b2f3c3c7 making requested changes to default config 2019-02-16 09:23:06 -08:00
thelamer
7d94cc4b64 forgot schema value 2019-02-15 13:03:14 -08:00
thelamer
e834619ec3 fixing paths for initial config 2019-02-15 12:58:34 -08:00
thelamer
ab115449e7 need to untar picons for htem to be read by the app 2019-02-15 11:45:41 -08:00
thelamer
322e35bb00 adding picons path to config if this is a first boot 2019-02-14 22:19:37 -08:00
9 changed files with 399 additions and 332 deletions

View File

@@ -4,7 +4,7 @@ FROM lsiobase/alpine:3.8 as buildstage
# package versions # package versions
ARG ARGTABLE_VER="2.13" ARG ARGTABLE_VER="2.13"
ARG TVH_VER="release/4.2" ARG TVH_VER="release/4.2"
ARG XMLTV_VER="0.5.69" ARG XMLTV_VER="v0.5.70"
ARG TVHEADEND_COMMIT ARG TVHEADEND_COMMIT
# environment settings # environment settings
@@ -31,6 +31,7 @@ RUN \
gettext-dev \ gettext-dev \
git \ git \
gzip \ gzip \
jq \
libgcrypt-dev \ libgcrypt-dev \
libhdhomerun-dev \ libhdhomerun-dev \
libressl-dev \ libressl-dev \
@@ -107,7 +108,7 @@ RUN \
x265-dev \ x265-dev \
zlib-dev && \ zlib-dev && \
apk add --no-cache \ apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \ --repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev gnu-libiconv-dev
RUN \ RUN \
@@ -122,13 +123,9 @@ RUN \
RUN \ RUN \
echo "**** compile XMLTV ****" && \ echo "**** compile XMLTV ****" && \
curl -o \ git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
/tmp/xmtltv-src.tar.bz2 -L \ cd /tmp/xmltv && \
"https://sourceforge.net/projects/xmltv/files/xmltv/${XMLTV_VER}/xmltv-${XMLTV_VER}.tar.bz2" && \ git checkout ${XMLTV_VER} && \
tar xf \
/tmp/xmtltv-src.tar.bz2 -C \
/tmp --strip-components=1 && \
cd "/tmp/xmltv-${XMLTV_VER}" && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \ echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \ sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \ sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
@@ -156,15 +153,11 @@ RUN \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \ TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \
| jq -r '. | .sha'); \ | jq -r '. | .sha'); \
fi && \ fi && \
curl -o \
/tmp/tvheadend.tar.gz -L \
"https://github.com/tvheadend/tvheadend/archive/${TVHEADEND_COMMIT}.tar.gz" && \
mkdir -p \ mkdir -p \
/tmp/tvheadend && \ /tmp/tvheadend && \
tar xf \ git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
/tmp/tvheadend.tar.gz -C \
/tmp/tvheadend/ --strip-components=1 && \
cd /tmp/tvheadend && \ cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \
./configure \ ./configure \
--disable-avahi \ --disable-avahi \
--disable-bintray_cache \ --disable-bintray_cache \
@@ -313,13 +306,19 @@ RUN \
x265 \ x265 \
zlib && \ zlib && \
apk add --no-cache \ apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \ --repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \ gnu-libiconv && \
echo "**** Add Picons ****" && \ echo "**** Add Picons ****" && \
mkdir -p /picons && \ mkdir -p /picons && \
curl -o \ curl -o \
/picons/picons.tar.bz2 -L \ /tmp/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2 https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2 && \
tar xf \
/tmp/picons.tar.bz2 -C \
/picons && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# copy local files and buildstage artifacts # copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-build/usr/ /usr/ COPY --from=buildstage /tmp/argtable-build/usr/ /usr/
@@ -331,7 +330,6 @@ COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/
COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/ COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/
COPY root/ / COPY root/ /
# ports and volumes # ports and volumes
EXPOSE 9981 9982 EXPOSE 9981 9982
VOLUME /config /recordings VOLUME /config /recordings

View File

@@ -1,10 +1,10 @@
FROM lsiobase/alpine.arm64:3.8 as buildstage FROM lsiobase/alpine:arm64v8-3.8 as buildstage
############## build stage ############## ############## build stage ##############
# package versions # package versions
ARG ARGTABLE_VER="2.13" ARG ARGTABLE_VER="2.13"
ARG TVH_VER="release/4.2" ARG TVH_VER="release/4.2"
ARG XMLTV_VER="0.5.69" ARG XMLTV_VER="v0.5.70"
ARG TVHEADEND_COMMIT ARG TVHEADEND_COMMIT
# environment settings # environment settings
@@ -31,6 +31,7 @@ RUN \
gettext-dev \ gettext-dev \
git \ git \
gzip \ gzip \
jq \
libgcrypt-dev \ libgcrypt-dev \
libhdhomerun-dev \ libhdhomerun-dev \
libressl-dev \ libressl-dev \
@@ -107,7 +108,7 @@ RUN \
x265-dev \ x265-dev \
zlib-dev && \ zlib-dev && \
apk add --no-cache \ apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \ --repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev gnu-libiconv-dev
RUN \ RUN \
@@ -122,13 +123,9 @@ RUN \
RUN \ RUN \
echo "**** compile XMLTV ****" && \ echo "**** compile XMLTV ****" && \
curl -o \ git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
/tmp/xmtltv-src.tar.bz2 -L \ cd /tmp/xmltv && \
"https://sourceforge.net/projects/xmltv/files/xmltv/${XMLTV_VER}/xmltv-${XMLTV_VER}.tar.bz2" && \ git checkout ${XMLTV_VER} && \
tar xf \
/tmp/xmtltv-src.tar.bz2 -C \
/tmp --strip-components=1 && \
cd "/tmp/xmltv-${XMLTV_VER}" && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \ echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \ sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \ sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
@@ -156,15 +153,11 @@ RUN \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \ TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \
| jq -r '. | .sha'); \ | jq -r '. | .sha'); \
fi && \ fi && \
curl -o \
/tmp/tvheadend.tar.gz -L \
"https://github.com/tvheadend/tvheadend/archive/${TVHEADEND_COMMIT}.tar.gz" && \
mkdir -p \ mkdir -p \
/tmp/tvheadend && \ /tmp/tvheadend && \
tar xf \ git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
/tmp/tvheadend.tar.gz -C \
/tmp/tvheadend/ --strip-components=1 && \
cd /tmp/tvheadend && \ cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \
./configure \ ./configure \
--disable-avahi \ --disable-avahi \
--disable-bintray_cache \ --disable-bintray_cache \
@@ -222,10 +215,7 @@ RUN \
make DESTDIR=/tmp/comskip-build install make DESTDIR=/tmp/comskip-build install
############## runtime stage ############## ############## runtime stage ##############
FROM lsiobase/alpine.arm64:3.8 FROM lsiobase/alpine:arm64v8-3.8
# Add qemu to build on x86_64 systems
COPY qemu-aarch64-static /usr/bin
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -316,13 +306,19 @@ RUN \
x265 \ x265 \
zlib && \ zlib && \
apk add --no-cache \ apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \ --repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \ gnu-libiconv && \
echo "**** Add Picons ****" && \ echo "**** Add Picons ****" && \
mkdir -p /picons && \ mkdir -p /picons && \
curl -o \ curl -o \
/picons/picons.tar.bz2 -L \ /tmp/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2 https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2 && \
tar xf \
/tmp/picons.tar.bz2 -C \
/picons && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# copy local files and buildstage artifacts # copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-build/usr/ /usr/ COPY --from=buildstage /tmp/argtable-build/usr/ /usr/
@@ -334,7 +330,6 @@ COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/
COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/ COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/
COPY root/ / COPY root/ /
# ports and volumes # ports and volumes
EXPOSE 9981 9982 EXPOSE 9981 9982
VOLUME /config /recordings VOLUME /config /recordings

View File

@@ -1,10 +1,10 @@
FROM lsiobase/alpine.armhf:3.8 as buildstage FROM lsiobase/alpine:arm32v7-3.8 as buildstage
############## build stage ############## ############## build stage ##############
# package versions # package versions
ARG ARGTABLE_VER="2.13" ARG ARGTABLE_VER="2.13"
ARG TVH_VER="release/4.2" ARG TVH_VER="release/4.2"
ARG XMLTV_VER="0.5.69" ARG XMLTV_VER="v0.5.70"
ARG TVHEADEND_COMMIT ARG TVHEADEND_COMMIT
# environment settings # environment settings
@@ -31,6 +31,7 @@ RUN \
gettext-dev \ gettext-dev \
git \ git \
gzip \ gzip \
jq \
libgcrypt-dev \ libgcrypt-dev \
libhdhomerun-dev \ libhdhomerun-dev \
libressl-dev \ libressl-dev \
@@ -107,7 +108,7 @@ RUN \
x265-dev \ x265-dev \
zlib-dev && \ zlib-dev && \
apk add --no-cache \ apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \ --repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv-dev gnu-libiconv-dev
RUN \ RUN \
@@ -122,13 +123,9 @@ RUN \
RUN \ RUN \
echo "**** compile XMLTV ****" && \ echo "**** compile XMLTV ****" && \
curl -o \ git clone https://github.com/XMLTV/xmltv.git /tmp/xmltv && \
/tmp/xmtltv-src.tar.bz2 -L \ cd /tmp/xmltv && \
"https://sourceforge.net/projects/xmltv/files/xmltv/${XMLTV_VER}/xmltv-${XMLTV_VER}.tar.bz2" && \ git checkout ${XMLTV_VER} && \
tar xf \
/tmp/xmtltv-src.tar.bz2 -C \
/tmp --strip-components=1 && \
cd "/tmp/xmltv-${XMLTV_VER}" && \
echo "**** Perl 5.26 fixes for XMTLV ****" && \ echo "**** Perl 5.26 fixes for XMTLV ****" && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \ sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_latex && \
sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \ sed "s/use POSIX 'tmpnam';//" -i filter/tv_to_text && \
@@ -156,15 +153,11 @@ RUN \
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \ TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/${TVH_VER} \
| jq -r '. | .sha'); \ | jq -r '. | .sha'); \
fi && \ fi && \
curl -o \
/tmp/tvheadend.tar.gz -L \
"https://github.com/tvheadend/tvheadend/archive/${TVHEADEND_COMMIT}.tar.gz" && \
mkdir -p \ mkdir -p \
/tmp/tvheadend && \ /tmp/tvheadend && \
tar xf \ git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
/tmp/tvheadend.tar.gz -C \
/tmp/tvheadend/ --strip-components=1 && \
cd /tmp/tvheadend && \ cd /tmp/tvheadend && \
git checkout ${TVHEADEND_COMMIT} && \
./configure \ ./configure \
--disable-avahi \ --disable-avahi \
--disable-bintray_cache \ --disable-bintray_cache \
@@ -222,10 +215,7 @@ RUN \
make DESTDIR=/tmp/comskip-build install make DESTDIR=/tmp/comskip-build install
############## runtime stage ############## ############## runtime stage ##############
FROM lsiobase/alpine.armhf:3.8 FROM lsiobase/alpine:arm32v7-3.8
# Add qemu to build on x86_64 systems
COPY qemu-arm-static /usr/bin
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -316,13 +306,19 @@ RUN \
x265 \ x265 \
zlib && \ zlib && \
apk add --no-cache \ apk add --no-cache \
--repository http://nl.alpinelinux.org/alpine/edge/testing \ --repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
gnu-libiconv && \ gnu-libiconv && \
echo "**** Add Picons ****" && \ echo "**** Add Picons ****" && \
mkdir -p /picons && \ mkdir -p /picons && \
curl -o \ curl -o \
/picons/picons.tar.bz2 -L \ /tmp/picons.tar.bz2 -L \
https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2 https://lsio-ci.ams3.digitaloceanspaces.com/picons/picons.tar.bz2 && \
tar xf \
/tmp/picons.tar.bz2 -C \
/picons && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/*
# copy local files and buildstage artifacts # copy local files and buildstage artifacts
COPY --from=buildstage /tmp/argtable-build/usr/ /usr/ COPY --from=buildstage /tmp/argtable-build/usr/ /usr/
@@ -334,7 +330,6 @@ COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/
COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/ COPY --from=buildstage /usr/local/share/perl5/ /usr/local/share/perl5/
COPY root/ / COPY root/ /
# ports and volumes # ports and volumes
EXPOSE 9981 9982 EXPOSE 9981 9982
VOLUME /config /recordings VOLUME /config /recordings

114
Jenkinsfile vendored
View File

@@ -41,7 +41,7 @@ pipeline {
script: '''curl -s https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases | jq -r 'first(.[] | select(.prerelease == true)) | .tag_name' ''', script: '''curl -s https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases | jq -r 'first(.[] | select(.prerelease == true)) | .tag_name' ''',
returnStdout: true).trim() returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh( env.LS_RELEASE_NOTES = sh(
script: '''git log -1 --pretty=%B | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
returnStdout: true).trim() returnStdout: true).trim()
env.GITHUB_DATE = sh( env.GITHUB_DATE = sh(
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''', script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
@@ -132,7 +132,7 @@ pipeline {
script{ script{
env.IMAGE = env.DOCKERHUB_IMAGE env.IMAGE = env.DOCKERHUB_IMAGE
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v6-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
@@ -150,7 +150,7 @@ pipeline {
script{ script{
env.IMAGE = env.DEV_DOCKERHUB_IMAGE env.IMAGE = env.DEV_DOCKERHUB_IMAGE
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v6-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} }
@@ -168,7 +168,7 @@ pipeline {
script{ script{
env.IMAGE = env.PR_DOCKERHUB_IMAGE env.IMAGE = env.PR_DOCKERHUB_IMAGE
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v6-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} }
@@ -178,6 +178,35 @@ pipeline {
} }
} }
} }
// Run ShellCheck
stage('ShellCheck') {
when {
environment name: 'CI', value: 'true'
}
steps {
withCredentials([
string(credentialsId: 'spaces-key', variable: 'DO_KEY'),
string(credentialsId: 'spaces-secret', variable: 'DO_SECRET')
]) {
script{
env.SHELLCHECK_URL = 'https://lsio-ci.ams3.digitaloceanspaces.com/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
}
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
sh '''#! /bin/bash
set -e
docker pull lsiodev/spaces-file-upload:latest
docker run --rm \
-e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
-e FILE_NAME="shellcheck-result.xml" \
-e MIMETYPE="text/xml" \
-v ${WORKSPACE}:/mnt \
-e SECRET_KEY=\"${DO_SECRET}\" \
-e ACCESS_KEY=\"${DO_KEY}\" \
-t lsiodev/spaces-file-upload:latest \
python /upload.py'''
}
}
}
// Use helper containers to render templated files // Use helper containers to render templated files
stage('Update-Templates') { stage('Update-Templates') {
when { when {
@@ -252,7 +281,7 @@ pipeline {
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
steps { steps {
sh "docker build --no-cache -t ${IMAGE}:${META_TAG} \ sh "docker build --no-cache --pull -t ${IMAGE}:${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
} }
} }
@@ -265,7 +294,7 @@ pipeline {
parallel { parallel {
stage('Build X86') { stage('Build X86') {
steps { steps {
sh "docker build --no-cache -t ${IMAGE}:amd64-${META_TAG} \ sh "docker build --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
} }
} }
@@ -288,10 +317,13 @@ pipeline {
''' '''
sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static" sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static"
sh "chmod +x qemu-*" sh "chmod +x qemu-*"
sh "docker build --no-cache -f Dockerfile.armhf -t ${IMAGE}:arm32v6-${META_TAG} \ sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v6-${META_TAG} lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker tag ${IMAGE}:arm32v7-${META_TAG} lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
sh "docker push lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker push lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
sh '''docker rmi \
${IMAGE}:arm32v7-${META_TAG} \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} '''
} }
} }
} }
@@ -314,10 +346,13 @@ pipeline {
''' '''
sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static" sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static"
sh "chmod +x qemu-*" sh "chmod +x qemu-*"
sh "docker build --no-cache -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \ sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker tag ${IMAGE}:arm64v8-${META_TAG} lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
sh "docker push lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker push lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
sh '''docker rmi \
${IMAGE}:arm64v8-${META_TAG} \
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
} }
} }
} }
@@ -341,13 +376,13 @@ pipeline {
fi fi
if [ "${DIST_IMAGE}" == "alpine" ]; then if [ "${DIST_IMAGE}" == "alpine" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\ docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apk info > packages && \ apk info -v > /tmp/package_versions.txt && \
apk info -v > versions && \ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
paste -d " " packages versions > /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt' chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\ docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
apt list -qq --installed > /tmp/package_versions.txt && \ apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt' chmod 777 /tmp/package_versions.txt'
fi fi
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 ) NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
@@ -427,9 +462,9 @@ pipeline {
set -e set -e
docker pull lsiodev/ci:latest docker pull lsiodev/ci:latest
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ]; then
docker pull lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6-${META_TAG} docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi fi
docker run --rm \ docker run --rm \
@@ -479,6 +514,10 @@ pipeline {
sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:release-4.2" sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:release-4.2"
sh "docker push ${IMAGE}:release-4.2" sh "docker push ${IMAGE}:release-4.2"
sh "docker push ${IMAGE}:${META_TAG}" sh "docker push ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:${META_TAG} \
${IMAGE}:release-4.2 '''
} }
} }
} }
@@ -502,30 +541,39 @@ pipeline {
''' '''
sh '''#! /bin/bash sh '''#! /bin/bash
if [ "${CI}" == "false" ]; then if [ "${CI}" == "false" ]; then
docker pull lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6-${META_TAG} docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi''' fi'''
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-release-4.2" sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-release-4.2"
sh "docker tag ${IMAGE}:arm32v6-${META_TAG} ${IMAGE}:arm32v6-release-4.2" sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-release-4.2"
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-release-4.2" sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-release-4.2"
sh "docker push ${IMAGE}:amd64-${META_TAG}" sh "docker push ${IMAGE}:amd64-${META_TAG}"
sh "docker push ${IMAGE}:arm32v6-${META_TAG}" sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
sh "docker push ${IMAGE}:arm64v8-${META_TAG}" sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
sh "docker push ${IMAGE}:amd64-release-4.2" sh "docker push ${IMAGE}:amd64-release-4.2"
sh "docker push ${IMAGE}:arm32v6-release-4.2" sh "docker push ${IMAGE}:arm32v7-release-4.2"
sh "docker push ${IMAGE}:arm64v8-release-4.2" sh "docker push ${IMAGE}:arm64v8-release-4.2"
sh "docker manifest push --purge ${IMAGE}:release-4.2 || :" sh "docker manifest push --purge ${IMAGE}:release-4.2 || :"
sh "docker manifest create ${IMAGE}:release-4.2 ${IMAGE}:amd64-release-4.2 ${IMAGE}:arm32v6-release-4.2 ${IMAGE}:arm64v8-release-4.2" sh "docker manifest create ${IMAGE}:release-4.2 ${IMAGE}:amd64-release-4.2 ${IMAGE}:arm32v7-release-4.2 ${IMAGE}:arm64v8-release-4.2"
sh "docker manifest annotate ${IMAGE}:release-4.2 ${IMAGE}:arm32v6-release-4.2 --os linux --arch arm" sh "docker manifest annotate ${IMAGE}:release-4.2 ${IMAGE}:arm32v7-release-4.2 --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:release-4.2 ${IMAGE}:arm64v8-release-4.2 --os linux --arch arm64 --variant v8" sh "docker manifest annotate ${IMAGE}:release-4.2 ${IMAGE}:arm64v8-release-4.2 --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :" sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v6-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}" sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v6-${META_TAG} --os linux --arch arm" sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8" sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:release-4.2" sh "docker manifest push --purge ${IMAGE}:release-4.2"
sh "docker manifest push --purge ${IMAGE}:${META_TAG}" sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:amd64-${META_TAG} \
${IMAGE}:amd64-release-4.2 \
${IMAGE}:arm32v7-${META_TAG} \
${IMAGE}:arm32v7-release-4.2 \
${IMAGE}:arm64v8-${META_TAG} \
${IMAGE}:arm64v8-release-4.2 \
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
} }
} }
} }
@@ -586,6 +634,18 @@ pipeline {
} }
} }
} }
// If this is a Pull request send the CI link as a comment on it
stage('Pull Request Comment') {
when {
not {environment name: 'CHANGE_ID', value: ''}
environment name: 'CI', value: 'true'
environment name: 'EXIT_STATUS', value: ''
}
steps {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
-d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' '''
}
}
} }
/* ###################### /* ######################
Send status to Discord Send status to Discord
@@ -598,12 +658,12 @@ pipeline {
} }
else if (currentBuild.currentResult == "SUCCESS"){ else if (currentBuild.currentResult == "SUCCESS"){
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\ sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} ''' "username": "Jenkins"}' ${BUILDS_DISCORD} '''
} }
else { else {
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\ sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} ''' "username": "Jenkins"}' ${BUILDS_DISCORD} '''
} }
} }

View File

@@ -12,13 +12,6 @@ Find us at:
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team. * [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [IRC](https://irc.linuxserver.io) - on freenode at `#linuxserver.io`. Our primary support channel is Discord. * [IRC](https://irc.linuxserver.io) - on freenode at `#linuxserver.io`. Our primary support channel is Discord.
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Podcast](https://anchor.fm/linuxserverio) - on hiatus. Coming back soon (late 2018).
# PSA: Changes are happening
From August 2018 onwards, Linuxserver are in the midst of switching to a new CI platform which will enable us to build and release multiple architectures under a single repo. To this end, existing images for `arm64` and `armhf` builds are being deprecated. They are replaced by a manifest file in each container which automatically pulls the correct image for your architecture. You'll also be able to pull based on a specific architecture tag.
TLDR: Multi-arch support is changing from multiple repos to one repo per container image.
# [linuxserver/tvheadend](https://github.com/linuxserver/docker-tvheadend) # [linuxserver/tvheadend](https://github.com/linuxserver/docker-tvheadend)
[![](https://img.shields.io/discord/354974912613449730.svg?logo=discord&label=LSIO%20Discord&style=flat-square)](https://discord.gg/YWrKVTn) [![](https://img.shields.io/discord/354974912613449730.svg?logo=discord&label=LSIO%20Discord&style=flat-square)](https://discord.gg/YWrKVTn)
@@ -38,7 +31,7 @@ Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV D
## Supported Architectures ## Supported Architectures
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list). Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `linuxserver/tvheadend` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. Simply pulling `linuxserver/tvheadend` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
@@ -48,7 +41,7 @@ The architectures supported by this image are:
| :----: | --- | | :----: | --- |
| x86-64 | amd64-latest | | x86-64 | amd64-latest |
| arm64 | arm64v8-latest | | arm64 | arm64v8-latest |
| armhf | arm32v6-latest | | armhf | arm32v7-latest |
## Version Tags ## Version Tags
@@ -70,8 +63,8 @@ Here are some example snippets to help you get started creating a container.
``` ```
docker create \ docker create \
--name=tvheadend \ --name=tvheadend \
-e PUID=1001 \ -e PUID=1000 \
-e PGID=1001 \ -e PGID=1000 \
-e TZ=Europe/London \ -e TZ=Europe/London \
-e RUN_OPTS=<run options here> `#optional` \ -e RUN_OPTS=<run options here> `#optional` \
-p 9981:9981 \ -p 9981:9981 \
@@ -101,8 +94,8 @@ services:
image: linuxserver/tvheadend image: linuxserver/tvheadend
container_name: tvheadend container_name: tvheadend
environment: environment:
- PUID=1001 - PUID=1000
- PGID=1001 - PGID=1000
- TZ=Europe/London - TZ=Europe/London
- RUN_OPTS=<run options here> #optional - RUN_OPTS=<run options here> #optional
volumes: volumes:
@@ -114,7 +107,6 @@ services:
devices: devices:
- /dev/dri:/dev/dri #optional - /dev/dri:/dev/dri #optional
- /dev/drb:/dev/dvb #optional - /dev/drb:/dev/dvb #optional
mem_limit: 4096m
restart: unless-stopped restart: unless-stopped
``` ```
@@ -126,8 +118,8 @@ Container images are configured using parameters passed at runtime (such as thos
| :----: | --- | | :----: | --- |
| `-p 9981` | WebUI | | `-p 9981` | WebUI |
| `-p 9982` | HTSP server port. | | `-p 9982` | HTSP server port. |
| `-e PUID=1001` | for UserID - see below for explanation | | `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1001` | for GroupID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. | | `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. |
| `-e RUN_OPTS=<run options here>` | Optionally specify additional arguments to be passed. See Additional runtime parameters. | | `-e RUN_OPTS=<run options here>` | Optionally specify additional arguments to be passed. See Additional runtime parameters. |
| `-v /config` | Where TVHeadend show store it's config files. | | `-v /config` | Where TVHeadend show store it's config files. |
@@ -141,11 +133,11 @@ When using volumes (`-v` flags) permissions issues can arise between the host OS
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1001` and `PGID=1001`, to find yours use `id user` as below: In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
``` ```
$ id username $ id username
uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup) uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
``` ```
@@ -235,13 +227,27 @@ Below are the instructions for updating containers:
* Start the new container: `docker start tvheadend` * Start the new container: `docker start tvheadend`
* You can also remove the old dangling images: `docker image prune` * You can also remove the old dangling images: `docker image prune`
### Via Taisun auto-updater (especially useful if you don't remember the original parameters)
* Pull the latest image at its tag and replace it with the same env variables in one shot:
```
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock taisun/updater \
--oneshot tvheadend
```
* You can also remove the old dangling images: `docker image prune`
### Via Docker Compose ### Via Docker Compose
* Update the image: `docker-compose pull linuxserver/tvheadend` * Update all images: `docker-compose pull`
* Let compose update containers as necessary: `docker-compose up -d` * or update a single image: `docker-compose pull tvheadend`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d tvheadend`
* You can also remove the old dangling images: `docker image prune` * You can also remove the old dangling images: `docker image prune`
## Versions ## Versions
* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
* **17.02.19:** - Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend.
* **14.02.19:** - Add picons path to config.
* **15.01.19:** - Add pipeline logic and multi arch. * **15.01.19:** - Add pipeline logic and multi arch.
* **12.09.18:** - Rebase to alpine 3.8 and use buildstage type build. * **12.09.18:** - Rebase to alpine 3.8 and use buildstage type build.
* **21.04.18:** - Add JSON::XS Perl package for grab_tv_huro. * **21.04.18:** - Add JSON::XS Perl package for grab_tv_huro.

View File

@@ -1,214 +1,214 @@
musl musl-1.1.19-r10 alpine-baselayout-3.1.0-r0
busybox busybox-1.28.4-r3 alpine-keys-2.1-r1
alpine-baselayout alpine-baselayout-3.1.0-r0 alsa-lib-1.1.6-r0
alpine-keys alpine-keys-2.1-r1 apk-tools-2.10.1-r0
libressl2.7-libcrypto libressl2.7-libcrypto-2.7.4-r0 bash-4.4.19-r1
libressl2.7-libssl libressl2.7-libssl-2.7.4-r0 bsd-compat-headers-0.7.1-r0
libressl2.7-libtls libressl2.7-libtls-2.7.4-r0 busybox-1.28.4-r3
ssl_client ssl_client-1.28.4-r3 bzip2-1.0.6-r6
zlib zlib-1.2.11-r1 ca-certificates-20171114-r3
apk-tools apk-tools-2.10.1-r0 coreutils-8.29-r2
scanelf scanelf-1.2.3-r0 curl-7.61.1-r2
musl-utils musl-utils-1.1.19-r10 expat-2.2.5-r0
libc-utils libc-utils-0.7.1-r0 ffmpeg-3.4.4-r1
xz-libs xz-libs-5.2.4-r0 ffmpeg-libs-3.4.4-r1
xz xz-5.2.4-r0 fontconfig-2.12.6-r1
ca-certificates ca-certificates-20171114-r3 freetype-2.9.1-r1
ncurses-terminfo-base ncurses-terminfo-base-6.1_p20180818-r1 fribidi-1.0.2-r0
ncurses-terminfo ncurses-terminfo-6.1_p20180818-r1 gdbm-1.13-r1
ncurses-libs ncurses-libs-6.1_p20180818-r1 gmp-6.1.2-r1
readline readline-7.0.003-r0 gnu-libiconv-1.15-r2
bash bash-4.4.19-r1 gnutls-3.6.2-r0
libattr libattr-2.4.47-r7 gzip-1.9-r0
libacl libacl-2.2.52-r5 lame-3.100-r0
coreutils coreutils-8.29-r2 libacl-2.2.52-r5
linux-pam linux-pam-1.3.0-r0 libass-0.13.7-r1
shadow shadow-4.5-r0 libattr-2.4.47-r7
tzdata tzdata-2018f-r0 libbsd-0.8.6-r2
bsd-compat-headers bsd-compat-headers-0.7.1-r0 libbz2-1.0.6-r6
bzip2 bzip2-1.0.6-r6 libc-utils-0.7.1-r0
nghttp2-libs nghttp2-libs-1.32.0-r0 libcrypto1.0-1.0.2r-r0
libssh2 libssh2-1.8.0-r3 libcurl-7.61.1-r2
libcurl libcurl-7.61.1-r1 libdrm-2.4.92-r0
curl curl-7.61.1-r1 libffi-3.2.1-r4
sdl2 sdl2-2.0.8-r1 libgcc-6.4.0-r9
libxau libxau-1.0.8-r2 libgcrypt-1.8.3-r0
libbsd libbsd-0.8.6-r2 libgpg-error-1.30-r0
libxdmcp libxdmcp-1.1.2-r4 libhdhomerun-libs-20161117-r1
libxcb libxcb-1.13-r2 libidn-1.34-r1
libx11 libx11-1.6.6-r0 libjpeg-turbo-1.5.3-r4
alsa-lib alsa-lib-1.1.6-r0 libogg-1.3.3-r2
expat expat-2.2.5-r0 libpciaccess-0.13.5-r1
libbz2 libbz2-1.0.6-r6 libpng-1.6.34-r1
libpng libpng-1.6.34-r1 libressl-2.7.5-r0
freetype freetype-2.9.1-r1 libressl2.7-libcrypto-2.7.5-r0
fontconfig fontconfig-2.12.6-r1 libressl2.7-libssl-2.7.5-r0
fribidi fribidi-1.0.2-r0 libressl2.7-libtls-2.7.5-r0
libass libass-0.13.7-r1 librtmp-2.4_git20160909-r5
gmp gmp-6.1.2-r1 libssh2-1.8.1-r0
nettle nettle-3.4-r1 libssl1.0-1.0.2r-r0
libffi libffi-3.2.1-r4 libstdc++-6.4.0-r9
p11-kit p11-kit-0.23.10-r0 libtasn1-4.13-r0
libtasn1 libtasn1-4.13-r0 libtheora-1.1.1-r13
libunistring libunistring-0.9.7-r0 libunistring-0.9.7-r0
gnutls gnutls-3.6.2-r0 libva-2.1.0-r1
lame lame-3.100-r0 libvdpau-1.1.1-r1
opus opus-1.2.1-r1 libvorbis-1.3.6-r2
librtmp librtmp-2.4_git20160909-r5 libvpx-1.6.1-r0
libogg libogg-1.3.3-r2 libx11-1.6.6-r0
libtheora libtheora-1.1.1-r13 libxau-1.0.8-r2
libjpeg-turbo libjpeg-turbo-1.5.3-r4 libxcb-1.13-r2
v4l-utils-libs v4l-utils-libs-1.12.6-r1 libxdmcp-1.1.2-r4
libxext libxext-1.3.3-r2 libxext-1.3.3-r2
libxfixes libxfixes-5.0.3-r1 libxfixes-5.0.3-r1
libpciaccess libpciaccess-0.13.5-r1 libxml2-2.9.8-r1
libdrm libdrm-2.4.92-r0 libxslt-1.1.32-r0
libva libva-2.1.0-r1 linux-headers-4.4.6-r2
libvdpau libvdpau-1.1.1-r1 linux-pam-1.3.0-r0
libvorbis libvorbis-1.3.6-r2 musl-1.1.19-r10
libvpx libvpx-1.6.1-r0 musl-utils-1.1.19-r10
x264-libs x264-libs-20180304-r1 ncurses-libs-6.1_p20180818-r1
libgcc libgcc-6.4.0-r9 ncurses-terminfo-6.1_p20180818-r1
libstdc++ libstdc++-6.4.0-r9 ncurses-terminfo-base-6.1_p20180818-r1
x265 x265-2.7-r1 nettle-3.4-r1
xvidcore xvidcore-1.3.4-r1 nghttp2-libs-1.32.0-r0
ffmpeg-libs ffmpeg-libs-3.4.4-r1 opus-1.2.1-r1
ffmpeg ffmpeg-3.4.4-r1 p11-kit-0.23.10-r0
gzip gzip-1.9-r0 pcre2-10.31-r0
libcrypto1.0 libcrypto1.0-1.0.2q-r0 perl-5.26.3-r0
libhdhomerun-libs libhdhomerun-libs-20161117-r1 perl-archive-zip-1.60-r0
libressl libressl-2.7.4-r0 perl-b-hooks-endofscope-0.24-r0
libssl1.0 libssl1.0-1.0.2q-r0 perl-boolean-0.46-r0
libxml2 libxml2-2.9.8-r1 perl-capture-tiny-0.48-r0
libgpg-error libgpg-error-1.30-r0 perl-cgi-4.38-r0
libgcrypt libgcrypt-1.8.3-r0 perl-class-data-inheritable-0.08-r0
libxslt libxslt-1.1.32-r0 perl-class-inspector-1.28-r1
linux-headers linux-headers-4.4.6-r2 perl-class-methodmaker-2.24-r2
pcre2 pcre2-10.31-r0 perl-class-singleton-1.5-r0
perl perl-5.26.3-r0 perl-compress-raw-bzip2-2.081-r0
perl-archive-zip perl-archive-zip-1.60-r0 perl-compress-raw-zlib-2.081-r0
perl-boolean perl-boolean-0.46-r0 perl-cpan-meta-check-0.014-r1
perl-capture-tiny perl-capture-tiny-0.48-r0 perl-data-dumper-2.161-r2
perl-html-tagset perl-html-tagset-3.20-r1 perl-date-manip-6.70-r0
perl-html-parser perl-html-parser-3.72-r2 perl-datetime-1.44-r0
perl-cgi perl-cgi-4.38-r0 perl-datetime-format-strptime-1.74-r0
perl-compress-raw-zlib perl-compress-raw-zlib-2.081-r0 perl-datetime-locale-1.18-r0
perl-data-dumper perl-data-dumper-2.161-r2 perl-datetime-timezone-2.19-r0
perl-yaml-syck perl-yaml-syck-1.30-r1 perl-dbd-sqlite-1.58-r0
perl-date-manip perl-date-manip-6.70-r0 perl-dbi-1.641-r0
perl-cpan-meta-check perl-cpan-meta-check-0.014-r1 perl-devel-stacktrace-2.02-r0
perl-exporter-tiny perl-exporter-tiny-1.000000-r0 perl-devel-symdump-2.18-r0
perl-list-moreutils perl-list-moreutils-0.419-r1 perl-digest-sha1-2.13-r9
perl-module-runtime perl-module-runtime-0.016-r0 perl-dist-checkconflicts-0.11-r1
perl-dist-checkconflicts perl-dist-checkconflicts-0.11-r1 perl-doc-5.26.3-r0
perl-class-inspector perl-class-inspector-1.28-r1 perl-encode-locale-1.05-r1
perl-file-sharedir perl-file-sharedir-1.106-r0 perl-eval-closure-0.14-r0
perl-file-sharedir-install perl-file-sharedir-install-0.11-r0 perl-exception-class-1.44-r0
perl-sub-exporter-progressive perl-sub-exporter-progressive-0.001013-r0 perl-exporter-tiny-1.000000-r0
perl-devel-symdump perl-devel-symdump-2.18-r0 perl-file-listing-6.04-r1
perl-test-pod perl-test-pod-1.52-r0 perl-file-sharedir-1.106-r0
perl-pod-coverage perl-pod-coverage-0.23-r0 perl-file-sharedir-install-0.11-r0
perl-try-tiny perl-try-tiny-0.30-r0 perl-file-slurp-9999.19-r0
perl-test-taint perl-test-taint-1.06-r5 perl-file-temp-0.2304-r0
perl-module-implementation perl-module-implementation-0.09-r1 perl-file-which-1.22-r0
perl-variable-magic perl-variable-magic-0.62-r0 perl-getopt-long-2.50-r0
perl-b-hooks-endofscope perl-b-hooks-endofscope-0.24-r0 perl-html-parser-3.72-r2
perl-package-stash-xs perl-package-stash-xs-0.28-r4 perl-html-tagset-3.20-r1
perl-package-stash perl-package-stash-0.37-r0 perl-html-tree-5.07-r0
perl-sub-name perl-sub-name-0.21-r1 perl-http-cookies-6.04-r0
perl-sub-identify perl-sub-identify-0.14-r1 perl-http-daemon-6.01-r1
perl-namespace-clean perl-namespace-clean-0.27-r0 perl-http-date-6.02-r1
perl-namespace-autoclean perl-namespace-autoclean-0.28-r0 perl-http-message-6.15-r0
perl-params-validate perl-params-validate-1.28-r0 perl-http-negotiate-6.01-r1
perl-test-needs perl-test-needs-0.002005-r1 perl-importer-0.025-r0
perl-devel-stacktrace perl-devel-stacktrace-2.02-r0 perl-io-1.25-r4
perl-eval-closure perl-eval-closure-0.14-r0 perl-io-compress-2.081-r0
perl-mro-compat perl-mro-compat-0.13-r0 perl-io-html-1.001-r1
perl-role-tiny perl-role-tiny-2.000005-r0 perl-io-socket-ssl-2.048-r1
perl-test-fatal perl-test-fatal-0.014-r1 perl-io-stringy-2.111-r1
perl-sub-quote perl-sub-quote-2.004000-r0 perl-ipc-run3-0.048-r0
perl-specio perl-specio-0.42-r0 perl-json-2.97000-r0
perl-test-simple perl-test-simple-1.302136-r0 perl-libwww-6.34-r0
perl-importer perl-importer-0.025-r0 perl-lingua-en-numbers-ordinate-1.04-r1
perl-term-table perl-term-table-0.012-r0 perl-lingua-preferred-0.2.4-r1
perl-sub-info perl-sub-info-0.002-r0 perl-list-moreutils-0.419-r1
perl-scope-guard perl-scope-guard-0.21-r0 perl-lwp-mediatypes-6.02-r1
perl-module-pluggable perl-module-pluggable-5.2-r0 perl-module-build-0.4224-r0
perl-test2-suite perl-test2-suite-0.000114-r0 perl-module-implementation-0.09-r1
perl-test-without-module perl-test-without-module-0.20-r0 perl-module-pluggable-5.2-r0
perl-class-data-inheritable perl-class-data-inheritable-0.08-r0 perl-module-runtime-0.016-r0
perl-exception-class perl-exception-class-1.44-r0 perl-mro-compat-0.13-r0
perl-ipc-run3 perl-ipc-run3-0.048-r0 perl-namespace-autoclean-0.28-r0
perl-test2-plugin-nowarnings perl-test2-plugin-nowarnings-0.06-r0 perl-namespace-clean-0.27-r0
perl-params-validationcompiler perl-params-validationcompiler-0.24-r1 perl-net-http-6.09-r1
perl-scalar-list-utils perl-scalar-list-utils-1.50-r0 perl-net-libidn-0.12-r4
perl-test-requires perl-test-requires-0.10-r0 perl-net-ssleay-1.85-r1
perl-test-warnings perl-test-warnings-0.026-r0 perl-package-deprecationmanager-0.17-r0
perl-datetime-locale perl-datetime-locale-1.18-r0 perl-package-stash-0.37-r0
perl-class-singleton perl-class-singleton-1.5-r0 perl-package-stash-xs-0.28-r4
perl-datetime-timezone perl-datetime-timezone-2.19-r0 perl-params-util-1.07-r5
perl-datetime perl-datetime-1.44-r0 perl-params-validate-1.28-r0
perl-sub-install perl-sub-install-0.928-r1 perl-params-validationcompiler-0.24-r1
perl-params-util perl-params-util-1.07-r5 perl-parse-recdescent-1.967015-r1
perl-package-deprecationmanager perl-package-deprecationmanager-0.17-r0 perl-path-class-0.37-r0
perl-datetime-format-strptime perl-datetime-format-strptime-1.74-r0 perl-pod-coverage-0.23-r0
perl-dbi perl-dbi-1.641-r0 perl-role-tiny-2.000005-r0
perl-dbd-sqlite perl-dbd-sqlite-1.58-r0 perl-scalar-list-utils-1.50-r0
perl-digest-sha1 perl-digest-sha1-2.13-r9 perl-scope-guard-0.21-r0
perl-doc perl-doc-5.26.3-r0 perl-specio-0.42-r0
perl-file-slurp perl-file-slurp-9999.19-r0 perl-sub-exporter-progressive-0.001013-r0
perl-file-temp perl-file-temp-0.2304-r0 perl-sub-identify-0.14-r1
perl-file-which perl-file-which-1.22-r0 perl-sub-info-0.002-r0
perl-getopt-long perl-getopt-long-2.50-r0 perl-sub-install-0.928-r1
perl-html-tree perl-html-tree-5.07-r0 perl-sub-name-0.21-r1
perl-http-date perl-http-date-6.02-r1 perl-sub-quote-2.004000-r0
perl-lwp-mediatypes perl-lwp-mediatypes-6.02-r1 perl-sub-uplevel-0.2800-r0
perl-encode-locale perl-encode-locale-1.05-r1 perl-term-progressbar-2.22-r0
perl-uri perl-uri-1.72-r0 perl-term-readkey-2.37-r1
perl-io-html perl-io-html-1.001-r1 perl-term-table-0.012-r0
perl-http-message perl-http-message-6.15-r0 perl-test-exception-0.43-r0
perl-http-cookies perl-http-cookies-6.04-r0 perl-test-fatal-0.014-r1
perl-io perl-io-1.25-r4 perl-test-needs-0.002005-r1
perl-compress-raw-bzip2 perl-compress-raw-bzip2-2.081-r0 perl-test-pod-1.52-r0
perl-io-compress perl-io-compress-2.081-r0 perl-test-requires-0.10-r0
libidn libidn-1.34-r1 perl-test-simple-1.302136-r0
perl-net-libidn perl-net-libidn-0.12-r4 perl-test-taint-1.06-r5
perl-net-ssleay perl-net-ssleay-1.85-r1 perl-test-warnings-0.026-r0
perl-io-socket-ssl perl-io-socket-ssl-2.048-r1 perl-test-without-module-0.20-r0
perl-io-stringy perl-io-stringy-2.111-r1 perl-test2-plugin-nowarnings-0.06-r0
perl-json perl-json-2.97000-r0 perl-test2-suite-0.000114-r0
perl-net-http perl-net-http-6.09-r1 perl-timedate-2.30-r1
perl-http-daemon perl-http-daemon-6.01-r1 perl-try-tiny-0.30-r0
perl-file-listing perl-file-listing-6.04-r1 perl-unicode-string-2.09-r6
perl-www-robotrules perl-www-robotrules-6.02-r1 perl-uri-1.72-r0
perl-http-negotiate perl-http-negotiate-6.01-r1 perl-variable-magic-0.62-r0
perl-libwww perl-libwww-6.34-r0 perl-www-robotrules-6.02-r1
perl-lingua-en-numbers-ordinate perl-lingua-en-numbers-ordinate-1.04-r1 perl-xml-libxml-2.0132-r1
perl-lingua-preferred perl-lingua-preferred-0.2.4-r1 perl-xml-libxslt-1.96-r0
perl-module-build perl-module-build-0.4224-r0 perl-xml-namespacesupport-1.12-r0
perl-parse-recdescent perl-parse-recdescent-1.967015-r1 perl-xml-parser-2.44-r4
perl-path-class perl-path-class-0.37-r0 perl-xml-sax-0.99-r2
perl-class-methodmaker perl-class-methodmaker-2.24-r2 perl-xml-sax-base-1.09-r0
perl-term-readkey perl-term-readkey-2.37-r1 perl-xml-treepp-0.43-r1
perl-sub-uplevel perl-sub-uplevel-0.2800-r0 perl-xml-twig-3.52-r1
perl-test-exception perl-test-exception-0.43-r0 perl-xml-writer-0.625-r2
perl-term-progressbar perl-term-progressbar-2.22-r0 perl-yaml-syck-1.30-r1
perl-timedate perl-timedate-2.30-r1 python2-2.7.15-r1
perl-unicode-string perl-unicode-string-2.09-r6 readline-7.0.003-r0
perl-xml-sax-base perl-xml-sax-base-1.09-r0 scanelf-1.2.3-r0
perl-xml-namespacesupport perl-xml-namespacesupport-1.12-r0 sdl2-2.0.8-r1
perl-xml-sax perl-xml-sax-0.99-r2 shadow-4.5-r0
perl-xml-libxml perl-xml-libxml-2.0132-r1 sqlite-libs-3.25.3-r0
perl-xml-libxslt perl-xml-libxslt-1.96-r0 ssl_client-1.28.4-r3
perl-xml-parser perl-xml-parser-2.44-r4 tar-1.32-r0
perl-xml-treepp perl-xml-treepp-0.43-r1 tzdata-2018f-r0
perl-xml-twig perl-xml-twig-3.52-r1 uriparser-0.8.5-r0
perl-xml-writer perl-xml-writer-0.625-r2 v4l-utils-libs-1.12.6-r1
gdbm gdbm-1.13-r1 wget-1.20.1-r0
sqlite-libs sqlite-libs-3.25.3-r0 x264-20180304-r1
python2 python2-2.7.15-r1 x264-libs-20180304-r1
tar tar-1.31-r0 x265-2.7-r1
uriparser uriparser-0.8.5-r0 xvidcore-1.3.4-r1
wget wget-1.20.1-r0 xz-5.2.4-r0
x264 x264-20180304-r1 xz-libs-5.2.4-r0
gnu-libiconv gnu-libiconv-1.15-r2 zlib-1.2.11-r1

View File

@@ -15,7 +15,7 @@ project_blurb_optional_extras_enabled: false
available_architectures: available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v6-latest"} - { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version # development version
# development version # development version
@@ -125,6 +125,9 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- { date: "17.02.19:", desc: "Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend." }
- { date: "14.02.19:", desc: "Add picons path to config." }
- { date: "15.01.19:", desc: "Add pipeline logic and multi arch." } - { date: "15.01.19:", desc: "Add pipeline logic and multi arch." }
- { date: "12.09.18:", desc: "Rebase to alpine 3.8 and use buildstage type build." } - { date: "12.09.18:", desc: "Rebase to alpine 3.8 and use buildstage type build." }
- { date: "21.04.18:", desc: "Add JSON::XS Perl package for grab_tv_huro." } - { date: "21.04.18:", desc: "Add JSON::XS Perl package for grab_tv_huro." }

7
root/defaults/config Normal file
View File

@@ -0,0 +1,7 @@
{
"prefer_picon": true,
"chiconpath": "file:///picons/%C.png",
"piconpath": "file:///picons/",
"piconscheme": 0,
"chiconscheme": 2
}

View File

@@ -9,6 +9,9 @@ mkdir -p \
(mkdir -p /config/dvr/config && cp /defaults/7a5edfbe189851e5b1d1df19c93962f0 /config/dvr/config/7a5edfbe189851e5b1d1df19c93962f0) (mkdir -p /config/dvr/config && cp /defaults/7a5edfbe189851e5b1d1df19c93962f0 /config/dvr/config/7a5edfbe189851e5b1d1df19c93962f0)
[[ ! -e /config/comskip/comskip.ini ]] && \ [[ ! -e /config/comskip/comskip.ini ]] && \
cp /defaults/comskip.ini.org /config/comskip/comskip.ini cp /defaults/comskip.ini.org /config/comskip/comskip.ini
[[ ! -e /config/config ]] && \
(cp /defaults/config /config/config)
# permissions # permissions
chown -R abc:abc \ chown -R abc:abc \