Compare commits

...

40 commits

Author SHA1 Message Date
LinuxServer-CI
e30db93714
Bot Updating Package Versions 2025-04-18 23:34:47 +00:00
LinuxServer-CI
4159257291
Bot Updating Package Versions 2025-04-11 23:35:03 +00:00
LinuxServer-CI
df12a32b65
Bot Updating Package Versions 2025-04-04 23:34:05 +00:00
LinuxServer-CI
48998cdd8c
Bot Updating Package Versions 2025-03-28 23:34:21 +00:00
LinuxServer-CI
68b3586774
Bot Updating Package Versions 2025-03-17 19:28:34 +00:00
LinuxServer-CI
36cb88f8c0
Bot Updating Package Versions 2025-03-14 23:34:31 +00:00
LinuxServer-CI
49ac7ced52
Bot Updating Package Versions 2025-03-07 23:30:36 +00:00
LinuxServer-CI
5b47125951
Bot Updating Package Versions 2025-02-21 23:32:28 +00:00
LinuxServer-CI
644007fc26
Bot Updating Package Versions 2025-02-12 04:41:10 +00:00
LinuxServer-CI
c054b83d33
Bot Updating Templated Files 2025-02-12 04:36:48 +00:00
LinuxServer-CI
9447093418
Bot Updating Package Versions 2025-02-07 23:32:16 +00:00
LinuxServer-CI
9545741dca
Bot Updating Templated Files 2025-01-31 23:32:18 +00:00
LinuxServer-CI
99017fd256
Bot Updating Templated Files 2025-01-31 23:30:25 +00:00
LinuxServer-CI
941c4a9597
Bot Updating Package Versions 2025-01-23 07:36:48 +00:00
quietsy
f19f25d8ad
Merge pull request #312 from linuxserver/add-project-categories
Add categories to readme-vars.yml
2025-01-23 09:32:01 +02:00
quietsy
5b5d722b3f Add categories to readme-vars.yml 2025-01-22 22:43:45 +02:00
LinuxServer-CI
d8ea320f78
Bot Updating Package Versions 2025-01-10 23:32:10 +00:00
LinuxServer-CI
52ed4dfc42
Bot Updating Templated Files 2025-01-09 13:44:04 +00:00
Adam
3917620d9b
Merge pull request #311 from pedorich-n/fix-rootless 2025-01-09 13:42:25 +00:00
Nikita Pedorich
b0ad5dc62f
fix: Rootless entrypoint 2025-01-09 22:02:22 +09:00
LinuxServer-CI
418c317be1
Bot Updating Package Versions 2025-01-06 03:05:49 +00:00
LinuxServer-CI
af7da33642
Bot Updating Package Versions 2025-01-03 23:33:30 +00:00
LinuxServer-CI
67b0b9647c
Bot Updating Package Versions 2024-12-25 23:11:22 +00:00
LinuxServer-CI
e772abf9d2
Bot Updating Templated Files 2024-12-25 23:08:21 +00:00
Roxedus
95d17bcf63
Merge pull request #309 from linuxserver/master-3.21 2024-12-26 00:06:49 +01:00
thespad
df0fa0d56f
Newline 2024-12-23 18:05:25 +00:00
thespad
edbd175790
Rebase to 3.21 2024-12-23 18:02:59 +00:00
LinuxServer-CI
578781252d
Bot Updating Package Versions 2024-12-20 23:39:46 +00:00
LinuxServer-CI
be4dd4bc91
Bot Updating Templated Files 2024-12-20 23:33:34 +00:00
LinuxServer-CI
e8c62f5014
Bot Updating Templated Files 2024-12-20 23:30:54 +00:00
LinuxServer-CI
b43e90d13e
Bot Updating Package Versions 2024-12-06 23:40:55 +00:00
LinuxServer-CI
c8d7639144
Bot Updating Templated Files 2024-12-06 23:36:37 +00:00
LinuxServer-CI
a5dda9b7f2
Bot Updating Templated Files 2024-12-06 23:34:50 +00:00
LinuxServer-CI
a0b1e8a3ec
Bot Updating Templated Files 2024-12-06 23:33:15 +00:00
LinuxServer-CI
5f634a338c
Bot Updating Package Versions 2024-11-27 02:06:47 +00:00
LinuxServer-CI
58753f5895
Bot Updating Templated Files 2024-11-15 23:35:57 +00:00
LinuxServer-CI
368f3b7c59
Bot Updating Templated Files 2024-11-15 23:33:47 +00:00
LinuxServer-CI
865b798f87
Bot Updating Package Versions 2024-10-26 02:57:15 +00:00
LinuxServer-CI
57ba4473eb
Bot Updating Package Versions 2024-10-04 23:34:07 +00:00
LinuxServer-CI
07b1804804
Bot Updating Templated Files 2024-10-04 23:31:58 +00:00
13 changed files with 582 additions and 606 deletions

View file

@ -6,7 +6,7 @@
* Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
## Common files
@ -105,10 +105,10 @@ docker build \
-t linuxserver/sonarr:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.

View file

@ -1,7 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: Discord chat support
url: https://discord.gg/YWrKVTn
url: https://linuxserver.io/discord
about: Realtime support / chat with the community and the team.
- name: Discourse discussion forum

View file

@ -15,7 +15,10 @@ jobs:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
printf "# External trigger for docker-sonarr\n\n" >> $GITHUB_STEP_SUMMARY
if grep -wq "^sonarr_master$" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
if grep -q "^sonarr_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`sonarr_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^sonarr_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`sonarr_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
@ -25,6 +28,11 @@ jobs:
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(curl -sX GET http://services.sonarr.tv/v1/releases | jq -r '.[] | select(.releaseChannel=="v4-stable") | .version')
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^sonarr_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
@ -43,16 +51,35 @@ jobs:
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fsonarr%3Apull" \
| jq -r '.token')
multidigest=$(curl -s \
multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.index.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}")
if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# If there's a layer element it's a single-arch manifest so just get that digest
digest=$(jq -r '.config.digest' <<< "${multidigest}")
else
# Otherwise it's multi-arch or has manifest annotations
if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# Check for manifest annotations and delete if found
multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}")
fi
if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then
# If there's still more than one digest, it's multi-arch
multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}")
else
# Otherwise it's single arch
multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}")
fi
if digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.manifest.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}" \
| jq -r 'first(.manifests[].digest)')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \
| jq -r '.config.digest')
"https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
digest=$(jq -r '.config.digest' <<< "${digest}");
fi
fi
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}")
@ -90,7 +117,7 @@ jobs:
else
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if "${artifacts_found}" == "true" ]]; then
if [[ "${artifacts_found}" == "true" ]]; then
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
fi
response=$(curl -iX POST \

View file

@ -27,17 +27,26 @@ jobs:
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-sonarr/${br}/jenkins-vars.yml)
if [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-sonarr/${br}/Jenkinsfile >/dev/null 2>&1; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
if [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-sonarr/${br}/readme-vars.yml)
if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif grep -wq "^sonarr_${br}$" <<< "${SKIP_PACKAGE_TRIGGER}"; then
elif grep -q "^sonarr_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`sonarr_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-sonarr/job/${br}/lastBuild/api/json | jq -r '.building') == "true" ]; then
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-sonarr/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
@ -49,6 +58,11 @@ jobs:
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-sonarr/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
if [[ -z "${response}" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Jenkins build could not be triggered. Skipping branch."
continue
fi
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
@ -56,11 +70,14 @@ jobs:
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
if ! curl -ifX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
--data-urlencode "Submit=Submit"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Unable to change the Jenkins job description."
fi
sleep 20
fi
else
@ -70,13 +87,14 @@ jobs:
if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
if [[ -n "${triggered_branches}" ]]; then
NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-sonarr/activity/ \n"
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
fi
if [[ -n "${skipped_branches}" ]]; then
NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n"
fi
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
echo "**** Notifying Discord ****"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Package Check Build(s) Triggered for sonarr** \n'"${NOTIFY_BRANCHES}"'**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-sonarr/activity/"' \n"}],
"description": "**Package Check Build(s) for sonarr** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:3.20
FROM ghcr.io/linuxserver/baseimage-alpine:3.21
# set version label
ARG BUILD_DATE

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.20
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.21
# set version label
ARG BUILD_DATE

315
Jenkinsfile vendored
View file

@ -8,7 +8,7 @@ pipeline {
}
// Input to determine if this is a package check
parameters {
string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK')
string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK')
}
// Configuration for the variables used for this specific repo
environment {
@ -32,7 +32,7 @@ pipeline {
CI_WEB='true'
CI_PORT='8989'
CI_SSL='false'
CI_DELAY='120'
CI_DELAY='240'
CI_DOCKERENV=''
CI_AUTH=''
CI_WEBPATH='/system/status'
@ -56,11 +56,23 @@ pipeline {
steps{
echo "Running on node: ${NODE_NAME}"
sh '''#! /bin/bash
containers=$(docker ps -aq)
echo "Pruning builder"
docker builder prune -f --builder container || :
containers=$(docker ps -q)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit')
for container in ${containers}; do
if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then
echo "skipping buildx container in docker stop"
else
echo "Stopping container ${container}"
docker stop ${container}
fi
done
fi
docker system prune -af --volumes || : '''
docker system prune -f --volumes || :
docker image prune -af || :
'''
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
@ -191,6 +203,7 @@ pipeline {
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
}
}
}
@ -215,6 +228,7 @@ pipeline {
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
}
}
}
@ -239,6 +253,7 @@ pipeline {
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
}
}
}
@ -335,6 +350,35 @@ pipeline {
else
echo "No templates to delete"
fi
echo "Starting Stage 2.5 - Update init diagram"
if ! grep -q 'init_diagram:' readme-vars.yml; then
echo "Adding the key 'init_diagram' to readme-vars.yml"
sed -i '\\|^#.*changelog.*$|d' readme-vars.yml
sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml
fi
mkdir -p ${TEMPDIR}/d2
docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:latest
ls -al ${TEMPDIR}/d2
yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-latest.d2\\")" readme-vars.yml
if [[ $(md5sum readme-vars.yml | cut -c1-8) != $(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | cut -c1-8) ]]; then
echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit."
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
cp ${WORKSPACE}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml
git add readme-vars.yml
git commit -m 'Bot Updating Templated Files'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
exit 0
else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Init diagram is unchanged"
fi
echo "Starting Stage 3 - Update templates"
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
@ -543,8 +587,42 @@ pipeline {
--label \"org.opencontainers.image.title=Sonarr\" \
--label \"org.opencontainers.image.description=[Sonarr](https://sonarr.tv/) (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--provenance=true --sbom=true --builder=container --load \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh '''#! /bin/bash
set -e
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker tag ${IMAGE}:${META_TAG} ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
done
'''
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
done
for p in $(jobs -p); do
wait "$p" || { echo "job $p failed" >&2; exit 1; }
done
fi
'''
}
}
}
}
// Build MultiArch Docker containers for push to LS Repo
@ -575,8 +653,42 @@ pipeline {
--label \"org.opencontainers.image.title=Sonarr\" \
--label \"org.opencontainers.image.description=[Sonarr](https://sonarr.tv/) (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--provenance=true --sbom=true --builder=container --load \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh '''#! /bin/bash
set -e
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
done
'''
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
done
for p in $(jobs -p); do
wait "$p" || { echo "job $p failed" >&2; exit 1; }
done
fi
'''
}
}
}
}
stage('Build ARM64') {
@ -585,10 +697,6 @@ pipeline {
}
steps {
echo "Running on node: ${NODE_NAME}"
echo 'Logging into Github'
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.aarch64"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
@ -604,18 +712,50 @@ pipeline {
--label \"org.opencontainers.image.title=Sonarr\" \
--label \"org.opencontainers.image.description=[Sonarr](https://sonarr.tv/) (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. \" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--provenance=false --sbom=false \
--provenance=true --sbom=true --builder=container --load \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry_backoff(5,5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
sh '''#! /bin/bash
set -e
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker tag ${IMAGE}:arm64v8-${META_TAG} ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
done
'''
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} &
done
for p in $(jobs -p); do
wait "$p" || { echo "job $p failed" >&2; exit 1; }
done
fi
'''
}
}
sh '''#! /bin/bash
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || : '''
docker system prune -f --volumes || :
docker image prune -af || :
'''
}
}
}
@ -765,37 +905,23 @@ pipeline {
environment name: 'EXIT_STATUS', value: ''
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
fi
docker push ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${PUSHIMAGE}:${SEMVER}
fi
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
for PUSHIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
[[ ${PUSHIMAGE%%/*} =~ \\. ]] && PUSHIMAGEPLUS="${PUSHIMAGE}" || PUSHIMAGEPLUS="docker.io/${PUSHIMAGE}"
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
if [[ "${PUSHIMAGEPLUS}" == "$(cut -d "/" -f1 <<< ${i})"* ]]; then
CACHEIMAGE=${i}
fi
done
'''
}
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
if [ -n "${SEMVER}" ]; then
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
fi
done
'''
}
}
}
@ -806,57 +932,34 @@ pipeline {
environment name: 'EXIT_STATUS', value: ''
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
]
]) {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
[[ ${MANIFESTIMAGE%%/*} =~ \\. ]] && MANIFESTIMAGEPLUS="${MANIFESTIMAGE}" || MANIFESTIMAGEPLUS="docker.io/${MANIFESTIMAGE}"
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
if [[ "${MANIFESTIMAGEPLUS}" == "$(cut -d "/" -f1 <<< ${i})"* ]]; then
CACHEIMAGE=${i}
fi
done
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
if [ -n "${SEMVER}" ]; then
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-latest
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
done
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
done
'''
}
done
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
done
'''
}
}
}
@ -884,7 +987,7 @@ pipeline {
echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "master",\
"name": "'${META_TAG}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
"body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": false}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
@ -1062,12 +1165,22 @@ EOF
}
cleanup {
sh '''#! /bin/bash
echo "Performing docker system prune!!"
containers=$(docker ps -aq)
echo "Pruning builder!!"
docker builder prune -f --builder container || :
containers=$(docker ps -q)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit')
for container in ${containers}; do
if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then
echo "skipping buildx container in docker stop"
else
echo "Stopping container ${container}"
docker stop ${container}
fi
done
fi
docker system prune -af --volumes || :
docker system prune -f --volumes || :
docker image prune -af || :
'''
cleanWs()
}

View file

@ -3,7 +3,7 @@
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
@ -20,7 +20,7 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
@ -82,10 +82,17 @@ The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/D
This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/).
## Non-Root Operation
This image can be run with a non-root user. For details please [read the docs](https://docs.linuxserver.io/misc/non-root/).
## Usage
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
>[!NOTE]
>Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml
@ -129,7 +136,7 @@ Containers are configured using parameters passed at runtime (such as those abov
| Parameter | Function |
| :----: | --- |
| `-p 8989` | The port for the Sonarr web interface |
| `-p 8989:8989` | The port for the Sonarr web interface |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
@ -137,6 +144,7 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-v /tv` | Location of TV library on disk (See note in Application setup) |
| `-v /downloads` | Location of download managers output directory (See note in Application setup) |
| `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). |
| `--user=1000:1000` | Run container with a non-root user. Please [read the docs](https://docs.linuxserver.io/misc/non-root/). |
## Environment variables from files (Docker secrets)
@ -290,16 +298,18 @@ docker build \
-t lscr.io/linuxserver/sonarr:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions
* **09.01.25:** - Fix rootless entrypoint.
* **23.12.24:** - Rebase Alpine 3.21.
* **31.05.24:** - Rebase Alpine 3.20.
* **12.01.24:** - Update download url.
* **30.12.23:** - Rebase master branch to Alpine 3.19.

View file

@ -21,7 +21,7 @@ repo_vars:
- CI_WEB='true'
- CI_PORT='8989'
- CI_SSL='false'
- CI_DELAY='120'
- CI_DELAY='240'
- CI_DOCKERENV=''
- CI_AUTH=''
- CI_WEBPATH='/system/status'

View file

@ -1,418 +1,184 @@
NAME VERSION TYPE
Bouncy Castle for .NET (netstandard2.0) 1.9.0.1 dotnet
Dapper 2.0.123.33578 dotnet
Diacritical 1.0.4.0 dotnet
DryIoc 5.4.3.0 dotnet
DryIoc.Microsoft.DependencyInjection net6.0 6.2.0.0 dotnet
Dynamitey 2.0.9.136 dotnet
Equ 2.3.0 dotnet
FFMpegCore 4.0.0.0 dotnet
FluentMigrator 3.3.2.9 dotnet (+19 duplicates)
FluentValidation 9.5.4.0 dotnet
Harmony 2.0.1.0 dotnet
ICSharpCode.SharpZipLib 1.4.2.13 dotnet
Ical.Net 1.0.0.0 dotnet
ImpromptuInterface 7.0.1.0 dotnet
Instances 1.0.0.0 dotnet
Json.NET 13.0.3.27908 dotnet
MailKit 3.6.0.0 dotnet
Microsoft.AspNetCore 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Antiforgery 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authentication 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authentication.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authentication.Cookies 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authentication.Core 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authentication.OAuth 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authorization 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Authorization.Policy 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Components 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Components.Authorization 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Components.Forms 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Components.Server 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Components.Web 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Connections.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.CookiePolicy 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Cors 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Cryptography.Internal 6.0.2123.36438 dotnet
Microsoft.AspNetCore.Cryptography.KeyDerivation 6.0.2123.36438 dotnet
Microsoft.AspNetCore.DataProtection 6.0.1322.58013 dotnet
Microsoft.AspNetCore.DataProtection.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.DataProtection.Extensions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Diagnostics 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Diagnostics.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Diagnostics.HealthChecks 6.0.1322.58013 dotnet
Microsoft.AspNetCore.HostFiltering 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Hosting 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Hosting.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Hosting.Server.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Html.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Connections 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Connections.Common 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Extensions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Features 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Http.Results 6.0.1322.58013 dotnet
Microsoft.AspNetCore.HttpLogging 6.0.1322.58013 dotnet
Microsoft.AspNetCore.HttpOverrides 6.0.1322.58013 dotnet
Microsoft.AspNetCore.HttpsPolicy 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Identity 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Localization 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Localization.Routing 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Metadata 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.ApiExplorer 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Core 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Cors 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.DataAnnotations 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Formatters.Json 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Formatters.Xml 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Localization 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.Razor 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.RazorPages 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.TagHelpers 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Mvc.ViewFeatures 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Owin 6.0.2123.36438 dotnet
Microsoft.AspNetCore.Razor 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Razor.Runtime 6.0.1322.58013 dotnet
Microsoft.AspNetCore.ResponseCaching 6.0.1322.58013 dotnet
Microsoft.AspNetCore.ResponseCaching.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.ResponseCompression 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Rewrite 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Routing 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Routing.Abstractions 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.HttpSys 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.IIS 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.IISIntegration 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.Kestrel 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.Kestrel.Core 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.Kestrel.Transport.Quic 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets 6.0.1322.58013 dotnet
Microsoft.AspNetCore.Session 6.0.1322.58013 dotnet
Microsoft.AspNetCore.SignalR 6.0.1322.58013 dotnet
Microsoft.AspNetCore.SignalR.Common 6.0.1322.58013 dotnet
Microsoft.AspNetCore.SignalR.Core 6.0.1322.58013 dotnet
Microsoft.AspNetCore.SignalR.Protocols.Json 6.0.1322.58013 dotnet
Microsoft.AspNetCore.StaticFiles 6.0.1322.58013 dotnet
Microsoft.AspNetCore.WebSockets 6.0.1322.58013 dotnet
Microsoft.AspNetCore.WebUtilities 6.0.1322.58013 dotnet
Microsoft.Bcl.AsyncInterfaces 6.0.21.52210 dotnet
Microsoft.Bcl.TimeProvider 8.0.23.53103 dotnet
Microsoft.CSharp 6.0.1322.58009 dotnet
Microsoft.Data.SqlClient 2.1.2+2a61e8301e9d21ada2338a9279cf27653e781757 dotnet
Microsoft.Extensions.Caching.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Caching.Memory 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration 6.0.322.12309 dotnet
Microsoft.Extensions.Configuration.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Binder 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.CommandLine 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.EnvironmentVariables 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration.FileExtensions 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Ini 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Json 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.KeyPerFile 6.0.1322.58013 dotnet
Microsoft.Extensions.Configuration.UserSecrets 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration.Xml 6.0.21.52210 dotnet
Microsoft.Extensions.DependencyInjection 6.0.1022.47605 dotnet
Microsoft.Extensions.DependencyInjection.Abstractions 7.0.22.51805 dotnet
Microsoft.Extensions.Diagnostics.HealthChecks 6.0.1322.58013 dotnet
Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions 6.0.1322.58013 dotnet
Microsoft.Extensions.Features 6.0.1322.58013 dotnet
Microsoft.Extensions.FileProviders.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.FileProviders.Composite 6.0.21.52210 dotnet
Microsoft.Extensions.FileProviders.Embedded 6.0.1322.58013 dotnet
Microsoft.Extensions.FileProviders.Physical 6.0.21.52210 dotnet
Microsoft.Extensions.FileSystemGlobbing 6.0.21.52210 dotnet
Microsoft.Extensions.Hosting 6.0.222.6406 dotnet
Microsoft.Extensions.Hosting.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Hosting.WindowsServices 6.0.1823.26907 dotnet
Microsoft.Extensions.Http 6.0.21.52210 dotnet
Microsoft.Extensions.Identity.Core 6.0.1322.58013 dotnet
Microsoft.Extensions.Identity.Stores 6.0.1322.58013 dotnet
Microsoft.Extensions.Localization 6.0.1322.58013 dotnet
Microsoft.Extensions.Localization.Abstractions 6.0.1322.58013 dotnet
Microsoft.Extensions.Logging 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Abstractions 6.0.1122.52304 dotnet
Microsoft.Extensions.Logging.Configuration 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Console 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Debug 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.EventLog 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.EventSource 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.TraceSource 6.0.21.52210 dotnet
Microsoft.Extensions.ObjectPool 6.0.1322.58013 dotnet
Microsoft.Extensions.Options 6.0.21.52210 dotnet
Microsoft.Extensions.Options.ConfigurationExtensions 6.0.21.52210 dotnet
Microsoft.Extensions.Options.DataAnnotations 6.0.21.52210 dotnet
Microsoft.Extensions.Primitives 6.0.21.52210 dotnet
Microsoft.Extensions.WebEncoders 6.0.1322.58013 dotnet
Microsoft.Identity.Client 4.21.1.0 dotnet
Microsoft.IdentityModel.JsonWebTokens 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Logging 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Protocols 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Tokens 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.JSInterop 6.0.1322.58013 dotnet
Microsoft.Net.Http.Headers 6.0.1322.58013 dotnet
Microsoft.OpenApi 1.6.14.0 dotnet
Microsoft.VisualBasic 6.0.1322.58009 dotnet
Microsoft.VisualBasic.Core 11.100.1322.58009 dotnet
Microsoft.Win32.Primitives 6.0.1322.58009 dotnet
Microsoft.Win32.Registry 6.0.1322.58009 dotnet
Microsoft.Win32.SystemEvents 6.0.21.52210 dotnet
MimeKit 3.6.0.0 dotnet
Mono.Cecil 0.11.2.0 dotnet (+3 duplicates)
Mono.Nat 3.0.1 dotnet
Mono.Posix.NETStandard 1.0.0.0 dotnet
MonoMod.Common 20.05.07.01+b18b2bddebe81992d218ea7e1f41aa1923459652 dotnet
MonoTorrent 2.0.7 dotnet
NLog v5.3.2 5.3.2.2526 dotnet
NLog.Extensions.Logging v5.3.11 5.3.11.526 dotnet
NLog.Layouts.ClefJsonLayout 1.0.0.0 dotnet
NLog.Targets.Syslog 7.0.0.0 dotnet
NodaTime 3.0.0.0 dotnet
Npgsql 7.0.7.0 dotnet
Polly 8.3.1.3207 dotnet
Polly.Contrib.WaitAndRetry 1.1.1.0+7596d2dacf22d88bbd814bc49c28424fb6e921e9 dotnet
Polly.Core 8.3.1.3207 dotnet
ReusableTasks 2.0.0 dotnet
Sentry 4.0.2.0 dotnet
SixLabors.ImageSharp 3.1.5.0 dotnet
Sonarr 4.0.9.2244 dotnet (+8 duplicates)
Swashbuckle.AspNetCore.Annotations 6.6.2.401 dotnet
Swashbuckle.AspNetCore.Swagger 6.6.2.401 dotnet
Swashbuckle.AspNetCore.SwaggerGen 6.6.2.401 dotnet
System 6.0.1322.58009 dotnet
System.AppContext 6.0.1322.58009 dotnet
System.Buffers 6.0.1322.58009 dotnet
System.Collections 6.0.1322.58009 dotnet
System.Collections.Concurrent 6.0.1322.58009 dotnet
System.Collections.Immutable 6.0.1322.58009 dotnet
System.Collections.NonGeneric 6.0.1322.58009 dotnet
System.Collections.Specialized 6.0.1322.58009 dotnet
System.ComponentModel 6.0.1322.58009 dotnet
System.ComponentModel.Annotations 6.0.1322.58009 dotnet
System.ComponentModel.DataAnnotations 6.0.1322.58009 dotnet
System.ComponentModel.EventBasedAsync 6.0.1322.58009 dotnet
System.ComponentModel.Primitives 6.0.1322.58009 dotnet
System.ComponentModel.TypeConverter 6.0.1322.58009 dotnet
System.Configuration 6.0.1322.58009 dotnet
System.Configuration.ConfigurationManager 6.0.922.41905 dotnet
System.Console 6.0.1322.58009 dotnet
System.Core 6.0.1322.58009 dotnet
System.Data 6.0.1322.58009 dotnet
System.Data.Common 6.0.1322.58009 dotnet
System.Data.DataSetExtensions 6.0.1322.58009 dotnet
System.Data.SQLite 1.0.115.5 dotnet
System.Data.SqlServerCe 4.0.8876.1 dotnet
System.Diagnostics.Contracts 6.0.1322.58009 dotnet
System.Diagnostics.Debug 6.0.1322.58009 dotnet
System.Diagnostics.DiagnosticSource 6.0.1322.58009 dotnet
System.Diagnostics.EventLog 6.0.21.52210 dotnet
System.Diagnostics.FileVersionInfo 6.0.1322.58009 dotnet
System.Diagnostics.Process 6.0.1322.58009 dotnet
System.Diagnostics.StackTrace 6.0.1322.58009 dotnet
System.Diagnostics.TextWriterTraceListener 6.0.1322.58009 dotnet
System.Diagnostics.Tools 6.0.1322.58009 dotnet
System.Diagnostics.TraceSource 6.0.1322.58009 dotnet
System.Diagnostics.Tracing 6.0.1322.58009 dotnet
System.Drawing 6.0.1322.58009 dotnet
System.Drawing.Common 6.0.21.52210 dotnet
System.Drawing.Primitives 6.0.1322.58009 dotnet
System.Dynamic.Runtime 6.0.1322.58009 dotnet
System.Formats.Asn1 6.0.1322.58009 dotnet
System.Globalization 6.0.1322.58009 dotnet
System.Globalization.Calendars 6.0.1322.58009 dotnet
System.Globalization.Extensions 6.0.1322.58009 dotnet
System.IO 6.0.1322.58009 dotnet
System.IO.Compression 6.0.1322.58009 dotnet
System.IO.Compression.Brotli 6.0.1322.58009 dotnet
System.IO.Compression.FileSystem 6.0.1322.58009 dotnet
System.IO.Compression.ZipFile 6.0.1322.58009 dotnet
System.IO.FileSystem 6.0.1322.58009 dotnet
System.IO.FileSystem.AccessControl 6.0.1322.58009 dotnet
System.IO.FileSystem.DriveInfo 6.0.1322.58009 dotnet
System.IO.FileSystem.Primitives 6.0.1322.58009 dotnet
System.IO.FileSystem.Watcher 6.0.1322.58009 dotnet
System.IO.IsolatedStorage 6.0.1322.58009 dotnet
System.IO.MemoryMappedFiles 6.0.1322.58009 dotnet
System.IO.Pipelines 6.0.522.21309 dotnet
System.IO.Pipes 6.0.1322.58009 dotnet
System.IO.Pipes.AccessControl 6.0.1322.58009 dotnet
System.IO.UnmanagedMemoryStream 6.0.1322.58009 dotnet
System.IdentityModel.Tokens.Jwt 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
System.Linq 6.0.1322.58009 dotnet
System.Linq.Expressions 6.0.1322.58009 dotnet
System.Linq.Parallel 6.0.1322.58009 dotnet
System.Linq.Queryable 6.0.1322.58009 dotnet
System.Memory 6.0.1322.58009 dotnet
System.Net 6.0.1322.58009 dotnet
System.Net.Http 6.0.1322.58009 dotnet
System.Net.Http.Json 6.0.1322.58009 dotnet
System.Net.HttpListener 6.0.1322.58009 dotnet
System.Net.Mail 6.0.1322.58009 dotnet
System.Net.NameResolution 6.0.1322.58009 dotnet
System.Net.NetworkInformation 6.0.1322.58009 dotnet
System.Net.Ping 6.0.1322.58009 dotnet
System.Net.Primitives 6.0.1322.58009 dotnet
System.Net.Quic 6.0.1322.58009 dotnet
System.Net.Requests 6.0.1322.58009 dotnet
System.Net.Security 6.0.1322.58009 dotnet
System.Net.ServicePoint 6.0.1322.58009 dotnet
System.Net.Sockets 6.0.1322.58009 dotnet
System.Net.WebClient 6.0.1322.58009 dotnet
System.Net.WebHeaderCollection 6.0.1322.58009 dotnet
System.Net.WebProxy 6.0.1322.58009 dotnet
System.Net.WebSockets 6.0.1322.58009 dotnet
System.Net.WebSockets.Client 6.0.1322.58009 dotnet
System.Numerics 6.0.1322.58009 dotnet
System.Numerics.Vectors 6.0.1322.58009 dotnet
System.ObjectModel 6.0.1322.58009 dotnet
System.Private.CoreLib 6.0.1322.58009 dotnet
System.Private.DataContractSerialization 6.0.1322.58009 dotnet
System.Private.Uri 6.0.1322.58009 dotnet
System.Private.Xml 6.0.1322.58009 dotnet
System.Private.Xml.Linq 6.0.1322.58009 dotnet
System.Reflection 6.0.1322.58009 dotnet
System.Reflection.DispatchProxy 6.0.1322.58009 dotnet
System.Reflection.Emit 6.0.1322.58009 dotnet
System.Reflection.Emit.ILGeneration 6.0.1322.58009 dotnet
System.Reflection.Emit.Lightweight 6.0.1322.58009 dotnet
System.Reflection.Extensions 6.0.1322.58009 dotnet
System.Reflection.Metadata 6.0.1322.58009 dotnet
System.Reflection.Primitives 6.0.1322.58009 dotnet
System.Reflection.TypeExtensions 6.0.1322.58009 dotnet
System.Resources.Reader 6.0.1322.58009 dotnet
System.Resources.ResourceManager 6.0.1322.58009 dotnet
System.Resources.Writer 6.0.1322.58009 dotnet
System.Runtime 6.0.1322.58009 dotnet
System.Runtime.Caching 4.700.19.56404 dotnet
System.Runtime.CompilerServices.VisualC 6.0.1322.58009 dotnet
System.Runtime.Extensions 6.0.1322.58009 dotnet
System.Runtime.Handles 6.0.1322.58009 dotnet
System.Runtime.InteropServices 6.0.1322.58009 dotnet
System.Runtime.InteropServices.RuntimeInformation 6.0.1322.58009 dotnet
System.Runtime.Intrinsics 6.0.1322.58009 dotnet
System.Runtime.Loader 6.0.1322.58009 dotnet
System.Runtime.Numerics 6.0.1322.58009 dotnet
System.Runtime.Serialization 6.0.1322.58009 dotnet
System.Runtime.Serialization.Formatters 6.0.1322.58009 dotnet
System.Runtime.Serialization.Json 6.0.1322.58009 dotnet
System.Runtime.Serialization.Primitives 6.0.1322.58009 dotnet
System.Runtime.Serialization.Xml 6.0.1322.58009 dotnet
System.Security 6.0.1322.58009 dotnet
System.Security.AccessControl 6.0.1322.58009 dotnet
System.Security.Claims 6.0.1322.58009 dotnet
System.Security.Cryptography.Algorithms 6.0.1322.58009 dotnet
System.Security.Cryptography.Cng 6.0.1322.58009 dotnet
System.Security.Cryptography.Csp 6.0.1322.58009 dotnet
System.Security.Cryptography.Encoding 6.0.1322.58009 dotnet
System.Security.Cryptography.OpenSsl 6.0.1322.58009 dotnet
System.Security.Cryptography.Pkcs 6.0.522.21309 dotnet
System.Security.Cryptography.Primitives 6.0.1322.58009 dotnet
System.Security.Cryptography.ProtectedData 6.0.21.52210 dotnet
System.Security.Cryptography.X509Certificates 6.0.1322.58009 dotnet
System.Security.Cryptography.Xml 6.0.822.36306 dotnet
System.Security.Permissions 6.0.21.52210 dotnet
System.Security.Principal 6.0.1322.58009 dotnet
System.Security.Principal.Windows 6.0.1322.58009 dotnet
System.Security.SecureString 6.0.1322.58009 dotnet
System.ServiceModel.Web 6.0.1322.58009 dotnet
System.ServiceProcess 6.0.1322.58009 dotnet
System.ServiceProcess.ServiceController 6.0.1823.26907 dotnet
System.Text.Encoding 6.0.1322.58009 dotnet
System.Text.Encoding.CodePages 6.0.1322.58009 dotnet
System.Text.Encoding.Extensions 6.0.1322.58009 dotnet
System.Text.Encodings.Web 6.0.1322.58009 dotnet
System.Text.Json 6.0.2523.51912 dotnet
System.Text.RegularExpressions 6.0.1322.58009 dotnet
System.Threading 6.0.1322.58009 dotnet
System.Threading.Channels 6.0.1322.58009 dotnet
System.Threading.Overlapped 6.0.1322.58009 dotnet
System.Threading.Tasks 6.0.1322.58009 dotnet
System.Threading.Tasks.Dataflow 6.0.1322.58009 dotnet
System.Threading.Tasks.Extensions 6.0.1322.58009 dotnet
System.Threading.Tasks.Parallel 6.0.1322.58009 dotnet
System.Threading.Thread 6.0.1322.58009 dotnet
System.Threading.ThreadPool 6.0.1322.58009 dotnet
System.Threading.Timer 6.0.1322.58009 dotnet
System.Transactions 6.0.1322.58009 dotnet
System.Transactions.Local 6.0.1322.58009 dotnet
System.ValueTuple 6.0.1322.58009 dotnet
System.Web 6.0.1322.58009 dotnet
System.Web.HttpUtility 6.0.1322.58009 dotnet
System.Windows 6.0.1322.58009 dotnet
System.Windows.Extensions 6.0.21.52210 dotnet
System.Xml 6.0.1322.58009 dotnet
System.Xml.Linq 6.0.1322.58009 dotnet
System.Xml.ReaderWriter 6.0.1322.58009 dotnet
System.Xml.Serialization 6.0.1322.58009 dotnet
System.Xml.XDocument 6.0.1322.58009 dotnet
System.Xml.XPath 6.0.1322.58009 dotnet
System.Xml.XPath.XDocument 6.0.1322.58009 dotnet
System.Xml.XmlDocument 6.0.1322.58009 dotnet
System.Xml.XmlSerializer 6.0.1322.58009 dotnet
WindowsBase 6.0.1322.58009 dotnet
alpine-baselayout 3.6.5-r0 apk
alpine-baselayout-data 3.6.5-r0 apk
alpine-keys 2.4-r1 apk
alpine-release 3.20.3-r0 apk
apk-tools 2.14.4-r0 apk
bash 5.2.26-r0 apk
brotli-libs 1.1.0-r2 apk
busybox 1.36.1-r29 apk
busybox-binsh 1.36.1-r29 apk
c-ares 1.28.1-r0 apk
ca-certificates 20240705-r0 apk
ca-certificates-bundle 20240705-r0 apk
catatonit 0.2.0-r0 apk
coreutils 9.5-r1 apk
coreutils-env 9.5-r1 apk
coreutils-fmt 9.5-r1 apk
coreutils-sha512sum 9.5-r1 apk
curl 8.9.1-r2 apk
findutils 4.9.0-r5 apk
icu-data-en 74.2-r0 apk
icu-libs 74.2-r0 apk
jq 1.7.1-r0 apk
libacl 2.3.2-r0 apk
libattr 2.5.2-r0 apk
libbsd 0.12.2-r0 apk
libcrypto3 3.3.2-r0 apk
libcurl 8.9.1-r2 apk
libgcc 13.2.1_git20240309-r0 apk
libgcrypt 1.10.3-r0 apk
libgpg-error 1.49-r0 apk
libidn2 2.3.7-r0 apk
libintl 0.22.5-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.4_p20240420-r1 apk
libproc2 4.0.4-r0 apk
libpsl 0.21.5-r1 apk
libssl3 3.3.2-r0 apk
libstdc++ 13.2.1_git20240309-r0 apk
libunistring 1.2-r0 apk
libxml2 2.12.7-r0 apk
libxslt 1.1.39-r1 apk
linux-pam 1.6.0-r0 apk
mscorlib 6.0.1322.58009 dotnet
musl 1.2.5-r0 apk
musl-utils 1.2.5-r0 apk
ncurses-terminfo-base 6.4_p20240420-r1 apk
netcat-openbsd 1.226-r0 apk
netstandard 6.0.1322.58009 dotnet
nghttp2-libs 1.62.1-r0 apk
oniguruma 6.9.9-r0 apk
procps-ng 4.0.4-r0 apk
readline 8.2.10-r0 apk
scanelf 1.3.7-r2 apk
shadow 4.15.1-r0 apk
skalibs 2.14.1.1-r0 apk
sqlite-libs 3.45.3-r1 apk
ssl_client 1.36.1-r29 apk
tzdata 2024b-r0 apk
utmps-libs 0.1.2.2-r1 apk
xmlstarlet 1.6.1-r2 apk
xz-libs 5.6.2-r0 apk
zlib 1.3.1-r1 apk
zstd-libs 1.5.6-r0 apk
NAME VERSION TYPE
BouncyCastle.Cryptography 2.4.0 dotnet (+5 duplicates)
Dapper 2.0.123 dotnet (+5 duplicates)
Diacritical.Net 1.0.4 dotnet (+5 duplicates)
DryIoc.Microsoft.DependencyInjection 6.2.0 dotnet (+1 duplicate)
DryIoc.dll 5.4.3 dotnet (+7 duplicates)
Dynamitey 2.0.9.136 dotnet (+3 duplicates)
Equ 2.3.0 dotnet (+5 duplicates)
FluentValidation 9.5.4 dotnet (+5 duplicates)
IPAddressRange 6.1.0 dotnet (+7 duplicates)
Ical.Net 4.3.1 dotnet (+2 duplicates)
ImpromptuInterface 7.0.1 dotnet (+3 duplicates)
Instances 1.6.1 dotnet (+5 duplicates)
Lib.Harmony 2.3.3 dotnet (+1 duplicate)
MailKit 4.8.0 dotnet (+5 duplicates)
Microsoft.AspNetCore.Cryptography.Internal 6.0.21 dotnet (+5 duplicates)
Microsoft.AspNetCore.Cryptography.KeyDerivation 6.0.21 dotnet (+5 duplicates)
Microsoft.AspNetCore.Owin 6.0.21 dotnet (+1 duplicate)
Microsoft.Bcl.AsyncInterfaces 6.0.0 dotnet (+5 duplicates)
Microsoft.Bcl.TimeProvider 8.0.0 dotnet (+5 duplicates)
Microsoft.Data.SqlClient 2.1.7 dotnet (+5 duplicates)
Microsoft.Extensions.Configuration 6.0.0 dotnet (+1 duplicate)
Microsoft.Extensions.Configuration 6.0.1 dotnet (+4 duplicates)
Microsoft.Extensions.Configuration.Abstractions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Configuration.Binder 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Configuration.CommandLine 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Configuration.EnvironmentVariables 6.0.1 dotnet (+6 duplicates)
Microsoft.Extensions.Configuration.FileExtensions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Configuration.Json 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Configuration.UserSecrets 6.0.1 dotnet (+6 duplicates)
Microsoft.Extensions.DependencyInjection 6.0.1 dotnet (+6 duplicates)
Microsoft.Extensions.DependencyInjection.Abstractions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.DependencyInjection.Abstractions 7.0.0 dotnet (+1 duplicate)
Microsoft.Extensions.FileProviders.Abstractions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.FileProviders.Physical 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.FileSystemGlobbing 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Hosting 6.0.1 dotnet (+6 duplicates)
Microsoft.Extensions.Hosting.Abstractions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Hosting.WindowsServices 6.0.2 dotnet (+7 duplicates)
Microsoft.Extensions.Logging 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.Abstractions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.Configuration 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.Console 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.Debug 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.EventLog 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Logging.EventSource 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Options 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Options.ConfigurationExtensions 6.0.0 dotnet (+2 duplicates)
Microsoft.Extensions.Primitives 6.0.0 dotnet (+2 duplicates)
Microsoft.Identity.Client 4.21.1 dotnet (+5 duplicates)
Microsoft.IdentityModel.JsonWebTokens 6.8.0 dotnet (+5 duplicates)
Microsoft.IdentityModel.Logging 6.8.0 dotnet (+5 duplicates)
Microsoft.IdentityModel.Protocols 6.8.0 dotnet (+5 duplicates)
Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0 dotnet (+5 duplicates)
Microsoft.IdentityModel.Tokens 6.8.0 dotnet (+5 duplicates)
Microsoft.OpenApi 1.6.14 dotnet (+2 duplicates)
Microsoft.Win32.SystemEvents 6.0.0 dotnet (+7 duplicates)
MimeKit 4.8.0 dotnet (+5 duplicates)
Mono.Nat 3.0.1 dotnet (+5 duplicates)
Mono.Posix.NETStandard 5.20.1.34-servarr24 dotnet
MonoTorrent 2.0.7 dotnet (+5 duplicates)
NLog 5.3.4 dotnet (+7 duplicates)
NLog.Extensions.Logging 5.3.15 dotnet (+7 duplicates)
NLog.Layouts.ClefJsonLayout 1.0.2 dotnet (+7 duplicates)
NLog.Targets.Syslog 7.0.0 dotnet (+7 duplicates)
Newtonsoft.Json 13.0.3 dotnet (+7 duplicates)
NodaTime 3.2.0 dotnet (+2 duplicates)
Npgsql 7.0.9 dotnet (+5 duplicates)
Polly 8.5.0 dotnet (+5 duplicates)
Polly.Contrib.WaitAndRetry 1.1.1 dotnet (+7 duplicates)
Polly.Core 8.5.0 dotnet (+5 duplicates)
ReusableTasks 2.0.0 dotnet (+5 duplicates)
Sentry 4.0.2 dotnet (+7 duplicates)
Servarr.FFMpegCore 4.7.0-26 dotnet (+5 duplicates)
Servarr.FluentMigrator 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Abstractions 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Extensions.Oracle 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Extensions.Postgres 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Extensions.SqlAnywhere 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Extensions.SqlServer 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Core 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Db2 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Firebird 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Hana 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.MySql 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Oracle 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Postgres 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.Redshift 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.SQLite 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.SqlAnywhere 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.SqlServer 3.3.2.9 dotnet (+5 duplicates)
Servarr.FluentMigrator.Runner.SqlServerCe 3.3.2.9 dotnet (+5 duplicates)
SharpZipLib 1.4.2 dotnet (+7 duplicates)
SixLabors.ImageSharp 3.1.7 dotnet (+5 duplicates)
Sonarr 4.0.14 dotnet
Sonarr.Api.V3 4.0.14 dotnet (+2 duplicates)
Sonarr.Common 4.0.14 dotnet (+7 duplicates)
Sonarr.Core 4.0.14 dotnet (+5 duplicates)
Sonarr.Host 4.0.14 dotnet (+1 duplicate)
Sonarr.Http 4.0.14 dotnet (+3 duplicates)
Sonarr.Mono 4.0.14 dotnet
Sonarr.RuntimePatches 4.0.14 dotnet (+1 duplicate)
Sonarr.SignalR 4.0.14 dotnet (+4 duplicates)
Swashbuckle.AspNetCore.Annotations 6.6.2 dotnet (+2 duplicates)
Swashbuckle.AspNetCore.Swagger 6.6.2 dotnet (+2 duplicates)
Swashbuckle.AspNetCore.SwaggerGen 6.6.2 dotnet (+2 duplicates)
System.Configuration.ConfigurationManager 6.0.1 dotnet (+7 duplicates)
System.Data.SQLite.Core.Servarr 1.0.115.5-18 dotnet (+7 duplicates)
System.Diagnostics.EventLog 6.0.0 dotnet (+2 duplicates)
System.Drawing.Common 6.0.0 dotnet (+7 duplicates)
System.Formats.Asn1 8.0.1 dotnet (+5 duplicates)
System.IdentityModel.Tokens.Jwt 6.8.0 dotnet (+5 duplicates)
System.Runtime.Caching 4.7.0 dotnet (+5 duplicates)
System.Security.Cryptography.Pkcs 8.0.0 dotnet (+5 duplicates)
System.Security.Cryptography.ProtectedData 6.0.0 dotnet (+7 duplicates)
System.Security.Permissions 6.0.0 dotnet (+7 duplicates)
System.ServiceProcess.ServiceController 6.0.1 dotnet (+7 duplicates)
System.Text.Json 6.0.10 dotnet (+7 duplicates)
System.Text.Json 6.0.9 dotnet
System.Windows.Extensions 6.0.0 dotnet (+7 duplicates)
acl-libs 2.3.2-r1 apk
alpine-baselayout 3.6.8-r1 apk
alpine-baselayout-data 3.6.8-r1 apk
alpine-keys 2.5-r0 apk
alpine-release 3.21.3-r0 apk
apk-tools 2.14.6-r3 apk
bash 5.2.37-r0 apk
brotli-libs 1.1.0-r2 apk
busybox 1.37.0-r12 apk
busybox-binsh 1.37.0-r12 apk
c-ares 1.34.5-r0 apk
ca-certificates 20241121-r1 apk
ca-certificates-bundle 20241121-r1 apk
catatonit 0.2.0-r0 apk
coreutils 9.5-r2 apk
coreutils-env 9.5-r2 apk
coreutils-fmt 9.5-r2 apk
coreutils-sha512sum 9.5-r2 apk
curl 8.12.1-r1 apk
findutils 4.10.0-r0 apk
icu-data-en 74.2-r0 apk
icu-libs 74.2-r0 apk
jq 1.7.1-r0 apk
libattr 2.5.2-r2 apk
libbsd 0.12.2-r0 apk
libcrypto3 3.3.3-r0 apk
libcurl 8.12.1-r1 apk
libgcc 14.2.0-r4 apk
libgcrypt 1.10.3-r1 apk
libgpg-error 1.51-r0 apk
libidn2 2.3.7-r0 apk
libintl 0.22.5-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.5_p20241006-r3 apk
libproc2 4.0.4-r2 apk
libpsl 0.21.5-r3 apk
libssl3 3.3.3-r0 apk
libstdc++ 14.2.0-r4 apk
libunistring 1.2-r0 apk
libxml2 2.13.4-r5 apk
libxslt 1.1.42-r2 apk
linux-pam 1.6.1-r1 apk
musl 1.2.5-r9 apk
musl-utils 1.2.5-r9 apk
ncurses-terminfo-base 6.5_p20241006-r3 apk
netcat-openbsd 1.226.1.1-r0 apk
nghttp2-libs 1.64.0-r0 apk
oniguruma 6.9.9-r0 apk
procps-ng 4.0.4-r2 apk
readline 8.2.13-r0 apk
runtimepack.Microsoft.AspNetCore.App.Runtime.linux-musl-x64 6.0.13 dotnet
runtimepack.Microsoft.NETCore.App.Runtime.linux-musl-x64 6.0.13 dotnet
scanelf 1.3.8-r1 apk
shadow 4.16.0-r1 apk
skalibs-libs 2.14.3.0-r0 apk
sqlite-libs 3.48.0-r1 apk
ssl_client 1.37.0-r12 apk
tzdata 2025b-r0 apk
utmps-libs 0.1.2.3-r2 apk
xmlstarlet 1.6.1-r2 apk
xz-libs 5.6.3-r1 apk
zlib 1.3.1-r2 apk
zstd-libs 1.5.6-r2 apk

View file

@ -7,35 +7,30 @@ project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/ma
project_blurb: |
[{{ project_name|capitalize }}]({{ project_url }}) (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Media Management"
# supported architectures
available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# development version
development_versions: true
development_versions_items:
- { tag: "latest", desc: "Stable releases from Sonarr" }
- { tag: "develop", desc: "Development releases from Sonarr" }
- {tag: "latest", desc: "Stable releases from Sonarr"}
- {tag: "develop", desc: "Development releases from Sonarr"}
# container parameters
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/data", desc: "Database and sonarr configs" }
- {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/data", desc: "Database and sonarr configs"}
opt_param_usage_include_vols: true
opt_param_volumes:
- { vol_path: "/tv", vol_host_path: "/path/to/tvseries", desc: "Location of TV library on disk (See note in Application setup)" }
- { vol_path: "/downloads", vol_host_path: "/path/to/downloadclient-downloads", desc: "Location of download managers output directory (See note in Application setup)" }
- {vol_path: "/tv", vol_host_path: "/path/to/tvseries", desc: "Location of TV library on disk (See note in Application setup)"}
- {vol_path: "/downloads", vol_host_path: "/path/to/downloadclient-downloads", desc: "Location of download managers output directory (See note in Application setup)"}
param_usage_include_ports: true
param_ports:
- { external_port: "8989", internal_port: "8989", port_desc: "The port for the Sonarr web interface" }
- {external_port: "8989", internal_port: "8989", port_desc: "The port for the Sonarr web interface"}
readonly_supported: true
nonroot_supported: true
# application setup block
app_setup_block_enabled: true
app_setup_block: |
@ -48,39 +43,78 @@ app_setup_block: |
Use the optional paths if you don't understand, or don't want hardlinks/atomic moves.
The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/Docker_Guide#Consistent_and_well_planned_paths) on how to get started with this.
# init diagram
init_diagram: |
"sonarr:latest": {
docker-mods
base {
fix-attr +\nlegacy cont-init
}
docker-mods -> base
legacy-services
custom services
init-services -> legacy-services
init-services -> custom services
custom services -> legacy-services
legacy-services -> ci-service-check
init-migrations -> init-adduser
init-os-end -> init-config
init-config -> init-config-end
init-crontab-config -> init-config-end
init-sonarr-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
base -> init-envfile
base -> init-migrations
init-config-end -> init-mods
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-adduser -> init-os-end
init-envfile -> init-os-end
init-custom-files -> init-services
init-config -> init-sonarr-config
init-services -> svc-cron
svc-cron -> legacy-services
init-services -> svc-sonarr
svc-sonarr -> legacy-services
}
Base Images: {
"baseimage-alpine:3.21"
}
"sonarr:latest" <- Base Images
# changelog
changelogs:
- { date: "31.05.24:", desc: "Rebase Alpine 3.20." }
- { date: "12.01.24:", desc: "Update download url." }
- { date: "30.12.23:", desc: "Rebase master branch to Alpine 3.19." }
- { date: "15.02.23:", desc: "Rebase master branch to Jammy." }
- { date: "19.12.22:", desc: "Rebase develop branch Alpine 3.17." }
- { date: "24.11.22:", desc: "Bump develop branch to v4, rebase to Alpine 3.16." }
- { date: "03.08.22:", desc: "Deprecate armhf." }
- { date: "02.08.22:", desc: "Add armhf deprecation warning." }
- { date: "28.04.22:", desc: "Rebase master branch to mono 6.12 base (focal)." }
- { date: "20.02.22:", desc: "Rebase develop branch to Alpine, deprecate develop-alpine branch." }
- { date: "28.12.21:", desc: "Add develop-alpine branch." }
- { date: "11.05.21:", desc: "Make the paths clearer to the user." }
- { date: "10.03.21:", desc: "Upgrade to Sonarr v3. Existing users are highly recommended to make a backup prior to update." }
- { date: "18.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information." }
- { date: "05.04.20:", desc: "Move app to /app." }
- { date: "01.08.19:", desc: "Rebase to Linuxserver LTS mono version." }
- { date: "13.06.19:", desc: "Add env variable for setting umask." }
- { date: "10.05.19:", desc: "Rebase to Bionic." }
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- { date: "01.02.19:", desc: "Multi arch images and pipeline build logic" }
- { date: "15.12.17:", desc: "Fix continuation lines." }
- { date: "12.07.17:", desc: "Add inspect commands to README, move to jenkins build and push." }
- { date: "17.04.17:", desc: "Switch to using inhouse mono baseimage, adds python also." }
- { date: "14.04.17:", desc: "Change to mount /etc/localtime in README, thanks cbgj." }
- { date: "13.04.17:", desc: "Switch to official mono repository." }
- { date: "30.09.16:", desc: "Fix umask" }
- { date: "23.09.16:", desc: "Add cd to /opt fixes redirects with althub (issue #25), make XDG config environment variable" }
- { date: "15.09.16:", desc: "Add libcurl3 package." }
- { date: "09.09.16:", desc: "Add layer badges to README." }
- { date: "27.08.16:", desc: "Add badges to README." }
- { date: "20.07.16:", desc: "Rebase to xenial." }
- { date: "31.08.15:", desc: "Cleanup, changed sources to fetch binarys from. also a new baseimage." }
- {date: "09.01.25:", desc: "Fix rootless entrypoint."}
- {date: "23.12.24:", desc: "Rebase Alpine 3.21."}
- {date: "31.05.24:", desc: "Rebase Alpine 3.20."}
- {date: "12.01.24:", desc: "Update download url."}
- {date: "30.12.23:", desc: "Rebase master branch to Alpine 3.19."}
- {date: "15.02.23:", desc: "Rebase master branch to Jammy."}
- {date: "19.12.22:", desc: "Rebase develop branch Alpine 3.17."}
- {date: "24.11.22:", desc: "Bump develop branch to v4, rebase to Alpine 3.16."}
- {date: "03.08.22:", desc: "Deprecate armhf."}
- {date: "02.08.22:", desc: "Add armhf deprecation warning."}
- {date: "28.04.22:", desc: "Rebase master branch to mono 6.12 base (focal)."}
- {date: "20.02.22:", desc: "Rebase develop branch to Alpine, deprecate develop-alpine branch."}
- {date: "28.12.21:", desc: "Add develop-alpine branch."}
- {date: "11.05.21:", desc: "Make the paths clearer to the user."}
- {date: "10.03.21:", desc: "Upgrade to Sonarr v3. Existing users are highly recommended to make a backup prior to update."}
- {date: "18.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information."}
- {date: "05.04.20:", desc: "Move app to /app."}
- {date: "01.08.19:", desc: "Rebase to Linuxserver LTS mono version."}
- {date: "13.06.19:", desc: "Add env variable for setting umask."}
- {date: "10.05.19:", desc: "Rebase to Bionic."}
- {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."}
- {date: "01.02.19:", desc: "Multi arch images and pipeline build logic"}
- {date: "15.12.17:", desc: "Fix continuation lines."}
- {date: "12.07.17:", desc: "Add inspect commands to README, move to jenkins build and push."}
- {date: "17.04.17:", desc: "Switch to using inhouse mono baseimage, adds python also."}
- {date: "14.04.17:", desc: "Change to mount /etc/localtime in README, thanks cbgj."}
- {date: "13.04.17:", desc: "Switch to official mono repository."}
- {date: "30.09.16:", desc: "Fix umask"}
- {date: "23.09.16:", desc: "Add cd to /opt fixes redirects with althub (issue #25), make XDG config environment variable"}
- {date: "15.09.16:", desc: "Add libcurl3 package."}
- {date: "09.09.16:", desc: "Add layer badges to README."}
- {date: "27.08.16:", desc: "Add badges to README."}
- {date: "20.07.16:", desc: "Rebase to xenial."}
- {date: "31.08.15:", desc: "Cleanup, changed sources to fetch binarys from. also a new baseimage."}

View file

@ -3,7 +3,8 @@
mkdir -p /run/sonarr-temp
# permissions
lsiown -R abc:abc \
/config \
/run/sonarr-temp
if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
lsiown -R abc:abc \
/config \
/run/sonarr-temp
fi

View file

@ -1,7 +1,14 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
exec \
s6-notifyoncheck -d -n 300 -w 1000 \
cd /app/sonarr/bin s6-setuidgid abc /app/sonarr/bin/Sonarr \
-nobrowser -data=/config
if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
exec \
s6-notifyoncheck -d -n 300 -w 1000 \
cd /app/sonarr/bin s6-setuidgid abc /app/sonarr/bin/Sonarr \
-nobrowser -data=/config
else
exec \
s6-notifyoncheck -d -n 300 -w 1000 \
cd /app/sonarr/bin /app/sonarr/bin/Sonarr \
-nobrowser -data=/config
fi