Switch to v4, rebase to Alpine 3.16, migrate to s6v3

This commit is contained in:
TheSpad
2022-11-24 17:17:56 +00:00
parent a5715acc71
commit aea21d7459
27 changed files with 56 additions and 162 deletions
+1 -1
View File
@@ -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 -sX GET http://services.sonarr.tv/v1/releases | jq -r 'first(.[] | select(.branch=="develop") | .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"
+10 -43
View File
@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-mono:focal
FROM ghcr.io/linuxserver/baseimage-alpine:3.16
# set version label
ARG BUILD_DATE
@@ -8,69 +8,36 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
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 \
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 && \
apk add -U --upgrade --no-cache \
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"); \
| jq -r "first(.[] | select(.branch==\"$SONARR_BRANCH\") | .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 && \
echo -e "UpdateMethod=docker\nBranch=${sonarr_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://linuxserver.io)\nPackageGlobalMessage=Warn: This image is now based on Alpine. Custom scripts using apt-get will need to be updated to use apk" > /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 root/ /
# ports and volumes
EXPOSE 8989
VOLUME /config
+10 -43
View File
@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-mono:arm64v8-focal
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.16
# set version label
ARG BUILD_DATE
@@ -8,69 +8,36 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
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 \
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 && \
apk add -U --upgrade --no-cache \
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"); \
| jq -r "first(.[] | select(.branch==\"$SONARR_BRANCH\") | .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 && \
echo -e "UpdateMethod=docker\nBranch=${sonarr_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://linuxserver.io)\nPackageGlobalMessage=Warn: This image is now based on Alpine. Custom scripts using apt-get will need to be updated to use apk" > /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 root/ /
# ports and volumes
EXPOSE 8989
VOLUME /config
+4 -39
View File
@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-mono:arm32v7-focal-3d8375bc-ls75
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.16
# set version label
ARG BUILD_DATE
@@ -7,45 +7,10 @@ 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
VOLUME /config
VOLUME /config
Vendored
+4 -4
View File
@@ -24,16 +24,16 @@ 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'
CI_PORT='8989'
CI_SSL='false'
CI_DELAY='120'
CI_DOCKERENV='TZ=US/Pacific|ISCI=true'
CI_DOCKERENV='TZ=US/Pacific'
CI_AUTH='user:password'
CI_WEBPATH=''
CI_WEBPATH='/system/status'
}
stages {
// Setup all the basic environment variables needed for the build
@@ -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 -sX GET http://services.sonarr.tv/v1/releases | jq -r 'first(.[] | select(.branch=="develop") | .version') ''',
returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command'
}
+2 -1
View File
@@ -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
* **24.11.22:** - Bump develop branch 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.
+4 -4
View File
@@ -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 -sX GET http://services.sonarr.tv/v1/releases | jq -r 'first(.[] | select(.branch==\"develop\") | .version')"
release_type: prerelease
release_tag: develop
ls_branch: develop
@@ -15,15 +15,15 @@ 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'
- CI_PORT='8989'
- CI_SSL='false'
- CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific|ISCI=true'
- CI_DOCKERENV='TZ=US/Pacific'
- CI_AUTH='user:password'
- CI_WEBPATH=''
- CI_WEBPATH='/system/status'
sponsor_links:
- { name: "Sonarr", url: "https://sonarr.tv/donate" }
+2 -1
View File
@@ -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: "24.11.22:", desc: "Bump develop branch to v4, rebase to Alpine." }
- { 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." }
@@ -5,8 +5,8 @@ cat <<-EOF
********************************************************
* *
* !!!! *
* This image no longers supports *
* 32 bit ARM due to a lack of upstream packages *
* This Sonarr image does not support *
* 32 bit ARM due to lack of available OS packages *
* *
* *
********************************************************
@@ -0,0 +1 @@
oneshot
@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-sonarr-config/run
-8
View File
@@ -1,8 +0,0 @@
#!/usr/bin/with-contenv bash
if [[ -n $ISCI ]]; then
sleep 180
fi
exec \
s6-svscanctl -t /run/service/
-9
View File
@@ -1,9 +0,0 @@
#!/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
+5
View File
@@ -0,0 +1,5 @@
#!/usr/bin/with-contenv bash
# permissions
chown -R abc:abc \
/config
@@ -0,0 +1 @@
oneshot
@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-sonarr-config/run
@@ -0,0 +1 @@
3
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/with-contenv bash
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8989" \
cd /app/sonarr/bin s6-setuidgid abc /app/sonarr/bin/Sonarr \
-nobrowser -data=/config
@@ -0,0 +1 @@
longrun
-7
View File
@@ -1,7 +0,0 @@
#!/usr/bin/with-contenv bash
cd /app/sonarr/bin || exit
exec \
s6-setuidgid abc mono --debug Sonarr.exe \
-nobrowser -data=/config