From 49add04942c159edfc7ac207d452005f0d70cd7e Mon Sep 17 00:00:00 2001 From: TheSpad Date: Sat, 20 Aug 2022 11:49:28 +0100 Subject: [PATCH] Rebase to Alpine, bump to v4 --- .github/workflows/external_trigger.yml | 2 +- Dockerfile | 64 ++++++++------------------ Dockerfile.aarch64 | 64 ++++++++------------------ Dockerfile.armhf | 40 +--------------- Jenkinsfile | 4 +- README.md | 3 +- jenkins-vars.yml | 4 +- readme-vars.yml | 3 +- root/etc/cont-init.d/30-config | 4 -- root/etc/services.d/sonarr/run | 2 +- 10 files changed, 48 insertions(+), 142 deletions(-) diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index bab0c95..9839072 100755 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -18,7 +18,7 @@ jobs: fi echo "**** External trigger running off of develop branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_SONARR_DEVELOP\". ****" echo "**** Retrieving external version ****" - EXT_RELEASE=$(curl -sX GET http://services.sonarr.tv/v1/releases | jq -r '.[] | select(.branch=="develop") | .version') + EXT_RELEASE=$(curl -sL 'https://services.sonarr.tv/v1/update/develop/changes?version=4&os=linuxmusl' | jq -r '.[0].version') if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then echo "**** Can't retrieve external version, exiting ****" FAILURE_REASON="Can't retrieve external version for sonarr branch develop" diff --git a/Dockerfile b/Dockerfile index 207e72b..f5ffd78 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-mono:focal +FROM ghcr.io/linuxserver/baseimage-alpine:3.15 # set version label ARG BUILD_DATE @@ -7,70 +7,42 @@ ARG SONARR_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="thespad" -# set environment variables -ARG DEBIAN_FRONTEND="noninteractive" +# environment settings +ARG SONARR_BRANCH="develop" ENV XDG_CONFIG_HOME="/config/xdg" -ENV SONARR_BRANCH="develop" RUN \ - echo "**** add mediaarea repository ****" && \ - curl -L \ - "https://mediaarea.net/repo/deb/repo-mediaarea_1.0-12_all.deb" \ - -o /tmp/key.deb && \ - dpkg -i /tmp/key.deb && \ - echo "deb https://mediaarea.net/repo/deb/ubuntu focal main" | tee /etc/apt/sources.list.d/mediaarea.list && \ echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ + apk add -U --upgrade --no-cache \ curl \ jq \ - mediainfo \ - libmono-system-net-http4.0-cil \ - libmono-corlib4.5-cil \ - libmono-microsoft-csharp4.0-cil \ - libmono-posix4.0-cil \ - libmono-system-componentmodel-dataannotations4.0-cil \ - libmono-system-configuration-install4.0-cil \ - libmono-system-configuration4.0-cil \ - libmono-system-core4.0-cil \ - libmono-system-data-datasetextensions4.0-cil \ - libmono-system-data4.0-cil \ - libmono-system-identitymodel4.0-cil \ - libmono-system-io-compression4.0-cil \ - libmono-system-numerics4.0-cil \ - libmono-system-runtime-serialization4.0-cil \ - libmono-system-security4.0-cil \ - libmono-system-servicemodel4.0a-cil \ - libmono-system-serviceprocess4.0-cil \ - libmono-system-transactions4.0-cil \ - libmono-system-web4.0-cil \ - libmono-system-xml-linq4.0-cil \ - libmono-system-xml4.0-cil \ - libmono-system4.0-cil && \ + icu-libs \ + sqlite-libs && \ echo "**** install sonarr ****" && \ mkdir -p /app/sonarr/bin && \ if [ -z ${SONARR_VERSION+x} ]; then \ - SONARR_VERSION=$(curl -sX GET http://services.sonarr.tv/v1/releases \ - | jq -r ".[] | select(.branch==\"$SONARR_BRANCH\") | .version"); \ + SONARR_VERSION=$(curl -sL "https://services.sonarr.tv/v1/update/${SONARR_BRANCH}?version=4&os=linuxmusl" \ + | jq -r '.[0].version'); \ fi && \ curl -o \ /tmp/sonarr.tar.gz -L \ - "https://download.sonarr.tv/v3/${SONARR_BRANCH}/${SONARR_VERSION}/Sonarr.${SONARR_BRANCH}.${SONARR_VERSION}.linux.tar.gz" && \ + "https://download.sonarr.tv/v4/${SONARR_BRANCH}/${SONARR_VERSION}/Sonarr.${SONARR_BRANCH}.${SONARR_VERSION}.linux-musl-x64.tar.gz" && \ tar xzf \ /tmp/sonarr.tar.gz -C \ /app/sonarr/bin --strip-components=1 && \ - echo "UpdateMethod=docker\nBranch=${SONARR_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://www.linuxserver.io/)" > /app/sonarr/package_info && \ - rm -rf /app/sonarr/bin/Sonarr.Update && \ + chmod +x \ + /app/sonarr/bin/Sonarr \ + /app/sonarr/bin/ffprobe \ + /app/sonarr/bin/createdump && \ + echo -e "UpdateMethod=docker\nBranch=${sonarr_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://linuxserver.io)" > /app/sonarr/package_info && \ echo "**** cleanup ****" && \ - apt-get clean && \ rm -rf \ - /var/lib/apt/lists/* \ - /tmp/* \ - /var/tmp/* + /app/sonarr/bin/sonarr.Update \ + /tmp/* -# add local files +# copy local files COPY root/ / # ports and volumes EXPOSE 8989 -VOLUME /config +VOLUME /config \ No newline at end of file diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 13f5e51..46e23bf 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-mono:arm64v8-focal +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.15 # set version label ARG BUILD_DATE @@ -7,70 +7,42 @@ ARG SONARR_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="thespad" -# set environment variables -ARG DEBIAN_FRONTEND="noninteractive" +# environment settings +ARG SONARR_BRANCH="develop" ENV XDG_CONFIG_HOME="/config/xdg" -ENV SONARR_BRANCH="develop" RUN \ - echo "**** add mediaarea repository ****" && \ - curl -L \ - "https://mediaarea.net/repo/deb/repo-mediaarea_1.0-12_all.deb" \ - -o /tmp/key.deb && \ - dpkg -i /tmp/key.deb && \ - echo "deb https://mediaarea.net/repo/deb/ubuntu focal main" | tee /etc/apt/sources.list.d/mediaarea.list && \ echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ + apk add -U --upgrade --no-cache \ curl \ jq \ - mediainfo \ - libmono-system-net-http4.0-cil \ - libmono-corlib4.5-cil \ - libmono-microsoft-csharp4.0-cil \ - libmono-posix4.0-cil \ - libmono-system-componentmodel-dataannotations4.0-cil \ - libmono-system-configuration-install4.0-cil \ - libmono-system-configuration4.0-cil \ - libmono-system-core4.0-cil \ - libmono-system-data-datasetextensions4.0-cil \ - libmono-system-data4.0-cil \ - libmono-system-identitymodel4.0-cil \ - libmono-system-io-compression4.0-cil \ - libmono-system-numerics4.0-cil \ - libmono-system-runtime-serialization4.0-cil \ - libmono-system-security4.0-cil \ - libmono-system-servicemodel4.0a-cil \ - libmono-system-serviceprocess4.0-cil \ - libmono-system-transactions4.0-cil \ - libmono-system-web4.0-cil \ - libmono-system-xml-linq4.0-cil \ - libmono-system-xml4.0-cil \ - libmono-system4.0-cil && \ + icu-libs \ + sqlite-libs && \ echo "**** install sonarr ****" && \ mkdir -p /app/sonarr/bin && \ if [ -z ${SONARR_VERSION+x} ]; then \ - SONARR_VERSION=$(curl -sX GET http://services.sonarr.tv/v1/releases \ - | jq -r ".[] | select(.branch==\"$SONARR_BRANCH\") | .version"); \ + SONARR_VERSION=$(curl -sL "https://services.sonarr.tv/v1/update/${SONARR_BRANCH}?version=4&os=linuxmusl" \ + | jq -r '.[0].version'); \ fi && \ curl -o \ /tmp/sonarr.tar.gz -L \ - "https://download.sonarr.tv/v3/${SONARR_BRANCH}/${SONARR_VERSION}/Sonarr.${SONARR_BRANCH}.${SONARR_VERSION}.linux.tar.gz" && \ + "https://download.sonarr.tv/v4/${SONARR_BRANCH}/${SONARR_VERSION}/Sonarr.${SONARR_BRANCH}.${SONARR_VERSION}.linux-musl-arm64.tar.gz" && \ tar xzf \ /tmp/sonarr.tar.gz -C \ /app/sonarr/bin --strip-components=1 && \ - echo "UpdateMethod=docker\nBranch=${SONARR_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://www.linuxserver.io/)" > /app/sonarr/package_info && \ - rm -rf /app/sonarr/bin/Sonarr.Update && \ + chmod +x \ + /app/sonarr/bin/Sonarr \ + /app/sonarr/bin/ffprobe \ + /app/sonarr/bin/createdump && \ + echo -e "UpdateMethod=docker\nBranch=${sonarr_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://linuxserver.io)" > /app/sonarr/package_info && \ echo "**** cleanup ****" && \ - apt-get clean && \ rm -rf \ - /var/lib/apt/lists/* \ - /tmp/* \ - /var/tmp/* + /app/sonarr/bin/sonarr.Update \ + /tmp/* -# add local files +# copy local files COPY root/ / # ports and volumes EXPOSE 8989 -VOLUME /config +VOLUME /config \ No newline at end of file diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 4e5b280..81a21cc 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-mono:arm32v7-focal-3d8375bc-ls75 +FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.15 # set version label ARG BUILD_DATE @@ -7,44 +7,8 @@ ARG SONARR_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="thespad" -# set environment variables -ARG DEBIAN_FRONTEND="noninteractive" -ENV XDG_CONFIG_HOME="/config/xdg" -ENV SONARR_BRANCH="develop" - -RUN \ - echo "**** add mediaarea repository ****" && \ - curl -L \ - "https://mediaarea.net/repo/deb/repo-mediaarea_1.0-12_all.deb" \ - -o /tmp/key.deb && \ - dpkg -i /tmp/key.deb && \ - echo "deb https://mediaarea.net/repo/deb/ubuntu focal main" | tee /etc/apt/sources.list.d/mediaarea.list && \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - curl \ - jq \ - mediainfo && \ - echo "**** install sonarr ****" && \ - mkdir -p /app/sonarr/bin && \ - SONARR_VERSION="3.0.8.1548" && \ - curl -o \ - /tmp/sonarr.tar.gz -L \ - "https://download.sonarr.tv/v3/${SONARR_BRANCH}/${SONARR_VERSION}/Sonarr.${SONARR_BRANCH}.${SONARR_VERSION}.linux.tar.gz" && \ - tar xzf \ - /tmp/sonarr.tar.gz -C \ - /app/sonarr/bin --strip-components=1 && \ - echo "UpdateMethod=docker\nBranch=${SONARR_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://www.linuxserver.io/)\nPackageGlobalMessage=Warn: Due to issues with Mono packages this container is no longer supported for 32-bit arm (armhf) platforms. See https://info.linuxserver.io for more info." > /app/sonarr/package_info && \ - rm -rf /app/sonarr/bin/Sonarr.Update && \ - echo "**** cleanup ****" && \ - apt-get clean && \ - rm -rf \ - /var/lib/apt/lists/* \ - /tmp/* \ - /var/tmp/* - # add local files -COPY root/ / +COPY root-armhf/ / # ports and volumes EXPOSE 8989 diff --git a/Jenkinsfile b/Jenkinsfile index 5579a96..7431cbb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,7 +24,7 @@ pipeline { DOCKERHUB_IMAGE = 'linuxserver/sonarr' DEV_DOCKERHUB_IMAGE = 'lsiodev/sonarr' PR_DOCKERHUB_IMAGE = 'lspipepr/sonarr' - DIST_IMAGE = 'ubuntu' + DIST_IMAGE = 'alpine' MULTIARCH='true' CI='true' CI_WEB='true' @@ -104,7 +104,7 @@ pipeline { steps{ script{ env.EXT_RELEASE = sh( - script: ''' curl -sX GET http://services.sonarr.tv/v1/releases | jq -r '.[] | select(.branch=="develop") | .version' ''', + script: ''' curl -sL 'https://services.sonarr.tv/v1/update/develop/changes?version=4&os=linuxmusl' | jq -r '.[0].version' ''', returnStdout: true).trim() env.RELEASE_LINK = 'custom_command' } diff --git a/README.md b/README.md index 77e9c3e..98821a8 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ This image provides various versions that are available via tags. Please read th | Tag | Available | Description | | :----: | :----: |--- | | latest | ✅ | Stable releases from Sonarr (currently v3) | -| develop | ✅ | Development releases from Sonarr (currently v3) | +| develop | ✅ | Development releases from Sonarr (currently v4) | ## Application Setup @@ -236,6 +236,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **20.08.22:** - Rebase develop to Alpine and bump to v4. * **03.08.22:** - Deprecate armhf. * **02.08.22:** - Rebase develop branch to Ubuntu Focal due to dropping of mono support on Alpine. * **20.02.22:** - Rebase develop branch to Alpine. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 0bc0248..b1d2205 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -3,7 +3,7 @@ # jenkins variables project_name: docker-sonarr external_type: na -custom_version_command: "curl -sX GET http://services.sonarr.tv/v1/releases | jq -r '.[] | select(.branch==\"develop\") | .version'" +custom_version_command: "curl -sL 'https://services.sonarr.tv/v1/update/develop?version=4&os=linuxmusl' | jq -r '.[0].version'" release_type: prerelease release_tag: develop ls_branch: develop @@ -15,7 +15,7 @@ repo_vars: - DOCKERHUB_IMAGE = 'linuxserver/sonarr' - DEV_DOCKERHUB_IMAGE = 'lsiodev/sonarr' - PR_DOCKERHUB_IMAGE = 'lspipepr/sonarr' - - DIST_IMAGE = 'ubuntu' + - DIST_IMAGE = 'alpine' - MULTIARCH='true' - CI='true' - CI_WEB='true' diff --git a/readme-vars.yml b/readme-vars.yml index 442f8dd..7d156c9 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -17,7 +17,7 @@ available_architectures: development_versions: true development_versions_items: - { tag: "latest", desc: "Stable releases from Sonarr (currently v3)" } - - { tag: "develop", desc: "Development releases from Sonarr (currently v3)" } + - { tag: "develop", desc: "Development releases from Sonarr (currently v4)" } # container parameters param_container_name: "{{ project_name }}" @@ -43,6 +43,7 @@ app_setup_block: | # changelog changelogs: + - { date: "20.08.22:", desc: "Rebase develop to Alpine and bump to v4." } - { date: "03.08.22:", desc: "Deprecate armhf." } - { date: "02.08.22:", desc: "Rebase develop branch to Ubuntu Focal due to dropping of mono support on Alpine." } - { date: "20.02.22:", desc: "Rebase develop branch to Alpine." } diff --git a/root/etc/cont-init.d/30-config b/root/etc/cont-init.d/30-config index 9010fc3..fbd633f 100644 --- a/root/etc/cont-init.d/30-config +++ b/root/etc/cont-init.d/30-config @@ -1,9 +1,5 @@ #!/usr/bin/with-contenv bash -# cleanup pid if it exists -[[ -e /config/sonarr.pid ]] && \ - rm -rf /config/sonarr.pid - # permissions chown -R abc:abc \ /app/sonarr/bin diff --git a/root/etc/services.d/sonarr/run b/root/etc/services.d/sonarr/run index 00a0285..f14ae6f 100755 --- a/root/etc/services.d/sonarr/run +++ b/root/etc/services.d/sonarr/run @@ -3,5 +3,5 @@ cd /app/sonarr/bin || exit exec \ - s6-setuidgid abc mono --debug Sonarr.exe \ + s6-setuidgid abc /app/sonarr/bin/Sonarr \ -nobrowser -data=/config