Compare commits
33 Commits
14.3.5.992
...
14.3.9.992
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d0bd08d681 | ||
|
|
31fd25b76e | ||
|
|
f602e3f3de | ||
|
|
404387d1bf | ||
|
|
b43a38d223 | ||
|
|
7a5e9ce7a8 | ||
|
|
9a9a5ace5f | ||
|
|
0e9d1cd2a7 | ||
|
|
388c14d39f | ||
|
|
05353a4ffa | ||
|
|
f403791b9b | ||
|
|
8957575e62 | ||
|
|
51cd1d2cb9 | ||
|
|
42c5efa42d | ||
|
|
88a3d3fffb | ||
|
|
04b7ad8614 | ||
|
|
fa2c992f99 | ||
|
|
7b96dd8081 | ||
|
|
788e6ac4d1 | ||
|
|
1920d0a36b | ||
|
|
7b7b90e21c | ||
|
|
d9604dae91 | ||
|
|
f09bcb7608 | ||
|
|
ad68a8d8b5 | ||
|
|
51fa07ef4c | ||
|
|
4dcbcffd20 | ||
|
|
36f6c4727c | ||
|
|
f4599598d5 | ||
|
|
4b7c5cfa3c | ||
|
|
453fa3ab17 | ||
|
|
1b01d5533e | ||
|
|
e4c0d9a5ca | ||
|
|
f95cc6ad6b |
20
.editorconfig
Executable file
20
.editorconfig
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
# This file is globally distributed to all container image projects from
|
||||||
|
# https://github.com/linuxserver/docker-jenkins-builder/blob/master/.editorconfig
|
||||||
|
|
||||||
|
# top-most EditorConfig file
|
||||||
|
root = true
|
||||||
|
|
||||||
|
# Unix-style newlines with a newline ending every file
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
# trim_trailing_whitespace may cause unintended issues and should not be globally set true
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
[{Dockerfile*,**.yml}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
* While contributing make sure to make all your changes before creating a Pull Request, as our pipeline builds each commit after the PR is open.
|
* While contributing make sure to make all your changes before creating a Pull Request, as our pipeline builds each commit after the PR is open.
|
||||||
* Read, and fill the Pull Request template
|
* Read, and fill the Pull Request template
|
||||||
* If this is a fix for a typo in code or documentation in the README please file an issue
|
* 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 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://discord.gg/YWrKVTn)
|
||||||
|
|
||||||
|
|||||||
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<!--- Before submitting a pull request please check the following -->
|
<!--- Before submitting a pull request please check the following -->
|
||||||
|
|
||||||
<!--- If this is a fix for a typo in code or documentation in the README please file an issue and let us sort it out we do not need a PR -->
|
<!--- 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 -->
|
||||||
<!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
|
<!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
|
||||||
<!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message -->
|
<!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message -->
|
||||||
<!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->
|
<!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->
|
||||||
|
|||||||
2
.github/workflows/stale.yml
vendored
2
.github/workflows/stale.yml
vendored
@@ -10,7 +10,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v1
|
- uses: actions/stale@v3
|
||||||
with:
|
with:
|
||||||
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
|
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
|
||||||
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
|
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
|
||||||
|
|||||||
131
Jenkinsfile
vendored
131
Jenkinsfile
vendored
@@ -16,6 +16,7 @@ pipeline {
|
|||||||
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
|
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
|
||||||
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
|
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
|
||||||
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
|
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
|
||||||
|
SCARF_TOKEN=credentials('scarf_api_key')
|
||||||
CONTAINER_NAME = 'qbittorrent'
|
CONTAINER_NAME = 'qbittorrent'
|
||||||
BUILD_VERSION_ARG = 'QBITTORRENT_VERSION'
|
BUILD_VERSION_ARG = 'QBITTORRENT_VERSION'
|
||||||
LS_USER = 'linuxserver'
|
LS_USER = 'linuxserver'
|
||||||
@@ -55,7 +56,7 @@ pipeline {
|
|||||||
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
|
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
|
||||||
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
|
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
|
||||||
env.PULL_REQUEST = env.CHANGE_ID
|
env.PULL_REQUEST = env.CHANGE_ID
|
||||||
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/package_trigger.yml'
|
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/package_trigger.yml'
|
||||||
}
|
}
|
||||||
script{
|
script{
|
||||||
env.LS_RELEASE_NUMBER = sh(
|
env.LS_RELEASE_NUMBER = sh(
|
||||||
@@ -116,6 +117,23 @@ pipeline {
|
|||||||
env.EXT_RELEASE_CLEAN = sh(
|
env.EXT_RELEASE_CLEAN = sh(
|
||||||
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
|
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
|
||||||
returnStdout: true).trim()
|
returnStdout: true).trim()
|
||||||
|
|
||||||
|
env.SEMVER = (new Date()).format('YYYY.MM.dd')
|
||||||
|
def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)$/
|
||||||
|
if (semver.find()) {
|
||||||
|
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
|
||||||
|
} else {
|
||||||
|
semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)(?:\.(\d+))?(.*)$/
|
||||||
|
if (semver.find()) {
|
||||||
|
if (semver[0][3]) {
|
||||||
|
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
|
||||||
|
} else if (!semver[0][3] && !semver[0][4]) {
|
||||||
|
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${(new Date()).format('YYYYMMdd')}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println("SEMVER: ${env.SEMVER}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -130,6 +148,7 @@ pipeline {
|
|||||||
env.IMAGE = env.DOCKERHUB_IMAGE
|
env.IMAGE = env.DOCKERHUB_IMAGE
|
||||||
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME
|
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME
|
||||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
|
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
|
||||||
|
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
|
||||||
if (env.MULTIARCH == 'true') {
|
if (env.MULTIARCH == 'true') {
|
||||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||||
} else {
|
} else {
|
||||||
@@ -152,6 +171,7 @@ pipeline {
|
|||||||
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
|
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
|
||||||
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME
|
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME
|
||||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
|
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
|
||||||
|
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
|
||||||
if (env.MULTIARCH == 'true') {
|
if (env.MULTIARCH == 'true') {
|
||||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||||
} else {
|
} else {
|
||||||
@@ -174,6 +194,7 @@ pipeline {
|
|||||||
env.IMAGE = env.PR_DOCKERHUB_IMAGE
|
env.IMAGE = env.PR_DOCKERHUB_IMAGE
|
||||||
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME
|
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME
|
||||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
|
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
|
||||||
|
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
|
||||||
if (env.MULTIARCH == 'true') {
|
if (env.MULTIARCH == 'true') {
|
||||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
||||||
} else {
|
} else {
|
||||||
@@ -260,7 +281,6 @@ pipeline {
|
|||||||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
|
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
|
||||||
cd ${TEMPDIR}/repo/${LS_REPO}
|
cd ${TEMPDIR}/repo/${LS_REPO}
|
||||||
git checkout -f master
|
git checkout -f master
|
||||||
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
|
|
||||||
for i in ${TEMPLATES_TO_DELETE}; do
|
for i in ${TEMPLATES_TO_DELETE}; do
|
||||||
git rm "${i}"
|
git rm "${i}"
|
||||||
done
|
done
|
||||||
@@ -370,13 +390,57 @@ pipeline {
|
|||||||
"visibility":"public"}' '''
|
"visibility":"public"}' '''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* #######################
|
||||||
|
Scarf.sh package registry
|
||||||
|
####################### */
|
||||||
|
// Add package to Scarf.sh and set permissions
|
||||||
|
stage("Scarf.sh package registry"){
|
||||||
|
when {
|
||||||
|
branch "master"
|
||||||
|
environment name: 'EXIT_STATUS', value: ''
|
||||||
|
}
|
||||||
|
steps{
|
||||||
|
sh '''#! /bin/bash
|
||||||
|
set -e
|
||||||
|
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/packages | jq -r '.[] | select(.name=="linuxserver/qbittorrent") | .uuid')
|
||||||
|
if [ -z "${PACKAGE_UUID}" ]; then
|
||||||
|
echo "Adding package to Scarf.sh"
|
||||||
|
PACKAGE_UUID=$(curl -sX POST https://scarf.sh/api/v1/packages \
|
||||||
|
-H "Authorization: Bearer ${SCARF_TOKEN}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"name":"linuxserver/qbittorrent",\
|
||||||
|
"shortDescription":"example description",\
|
||||||
|
"libraryType":"docker",\
|
||||||
|
"website":"https://github.com/linuxserver/docker-qbittorrent",\
|
||||||
|
"backendUrl":"https://ghcr.io/linuxserver/qbittorrent",\
|
||||||
|
"publicUrl":"https://lscr.io/linuxserver/qbittorrent"}' \
|
||||||
|
| jq -r .uuid)
|
||||||
|
else
|
||||||
|
echo "Package already exists on Scarf.sh"
|
||||||
|
fi
|
||||||
|
echo "Setting permissions on Scarf.sh for package ${PACKAGE_UUID}"
|
||||||
|
curl -X POST https://scarf.sh/api/v1/packages/${PACKAGE_UUID}/permissions \
|
||||||
|
-H "Authorization: Bearer ${SCARF_TOKEN}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '[{"userQuery":"Spad","permissionLevel":"admin"},\
|
||||||
|
{"userQuery":"roxedus","permissionLevel":"admin"},\
|
||||||
|
{"userQuery":"nemchik","permissionLevel":"admin"},\
|
||||||
|
{"userQuery":"driz","permissionLevel":"admin"},\
|
||||||
|
{"userQuery":"aptalca","permissionLevel":"admin"},\
|
||||||
|
{"userQuery":"saarg","permissionLevel":"admin"},\
|
||||||
|
{"userQuery":"Stark","permissionLevel":"admin"}]'
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
}
|
||||||
/* ###############
|
/* ###############
|
||||||
Build Container
|
Build Container
|
||||||
############### */
|
############### */
|
||||||
// Build Docker container for push to LS Repo
|
// Build Docker container for push to LS Repo
|
||||||
stage('Build-Single') {
|
stage('Build-Single') {
|
||||||
when {
|
when {
|
||||||
environment name: 'MULTIARCH', value: 'false'
|
expression {
|
||||||
|
env.MULTIARCH == 'false' || params.PACKAGE_CHECK == 'true'
|
||||||
|
}
|
||||||
environment name: 'EXIT_STATUS', value: ''
|
environment name: 'EXIT_STATUS', value: ''
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
@@ -401,7 +465,10 @@ pipeline {
|
|||||||
// Build MultiArch Docker containers for push to LS Repo
|
// Build MultiArch Docker containers for push to LS Repo
|
||||||
stage('Build-Multi') {
|
stage('Build-Multi') {
|
||||||
when {
|
when {
|
||||||
|
allOf {
|
||||||
environment name: 'MULTIARCH', value: 'true'
|
environment name: 'MULTIARCH', value: 'true'
|
||||||
|
expression { params.PACKAGE_CHECK == 'false' }
|
||||||
|
}
|
||||||
environment name: 'EXIT_STATUS', value: ''
|
environment name: 'EXIT_STATUS', value: ''
|
||||||
}
|
}
|
||||||
parallel {
|
parallel {
|
||||||
@@ -506,7 +573,7 @@ pipeline {
|
|||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
set -e
|
set -e
|
||||||
TEMPDIR=$(mktemp -d)
|
TEMPDIR=$(mktemp -d)
|
||||||
if [ "${MULTIARCH}" == "true" ]; then
|
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
|
||||||
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
|
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
|
||||||
else
|
else
|
||||||
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
|
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
|
||||||
@@ -521,6 +588,15 @@ pipeline {
|
|||||||
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
|
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
|
||||||
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
|
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
|
||||||
chmod 777 /tmp/package_versions.txt'
|
chmod 777 /tmp/package_versions.txt'
|
||||||
|
elif [ "${DIST_IMAGE}" == "fedora" ]; then
|
||||||
|
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
|
||||||
|
rpm -qa > /tmp/package_versions.txt && \
|
||||||
|
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
|
||||||
|
chmod 777 /tmp/package_versions.txt'
|
||||||
|
elif [ "${DIST_IMAGE}" == "arch" ]; then
|
||||||
|
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
|
||||||
|
pacman -Q > /tmp/package_versions.txt && \
|
||||||
|
chmod 777 /tmp/package_versions.txt'
|
||||||
fi
|
fi
|
||||||
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
|
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
|
||||||
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
|
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
|
||||||
@@ -558,7 +634,7 @@ pipeline {
|
|||||||
steps {
|
steps {
|
||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
echo "Packages were updated. Cleaning up the image and exiting."
|
echo "Packages were updated. Cleaning up the image and exiting."
|
||||||
if [ "${MULTIARCH}" == "true" ]; then
|
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
|
||||||
docker rmi ${IMAGE}:amd64-${META_TAG}
|
docker rmi ${IMAGE}:amd64-${META_TAG}
|
||||||
else
|
else
|
||||||
docker rmi ${IMAGE}:${META_TAG}
|
docker rmi ${IMAGE}:${META_TAG}
|
||||||
@@ -582,7 +658,7 @@ pipeline {
|
|||||||
steps {
|
steps {
|
||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
echo "There are no package updates. Cleaning up the image and exiting."
|
echo "There are no package updates. Cleaning up the image and exiting."
|
||||||
if [ "${MULTIARCH}" == "true" ]; then
|
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
|
||||||
docker rmi ${IMAGE}:amd64-${META_TAG}
|
docker rmi ${IMAGE}:amd64-${META_TAG}
|
||||||
else
|
else
|
||||||
docker rmi ${IMAGE}:${META_TAG}
|
docker rmi ${IMAGE}:${META_TAG}
|
||||||
@@ -657,6 +733,12 @@ pipeline {
|
|||||||
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
|
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
|
||||||
usernameVariable: 'DOCKERUSER',
|
usernameVariable: 'DOCKERUSER',
|
||||||
passwordVariable: 'DOCKERPASS'
|
passwordVariable: 'DOCKERPASS'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
$class: 'UsernamePasswordMultiBinding',
|
||||||
|
credentialsId: 'Quay.io-Robot',
|
||||||
|
usernameVariable: 'QUAYUSER',
|
||||||
|
passwordVariable: 'QUAYPASS'
|
||||||
]
|
]
|
||||||
]) {
|
]) {
|
||||||
retry(5) {
|
retry(5) {
|
||||||
@@ -665,22 +747,26 @@ pipeline {
|
|||||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --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 $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
||||||
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
|
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 ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
|
||||||
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
|
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
|
||||||
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
|
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
|
||||||
|
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
|
||||||
docker push ${PUSHIMAGE}:latest
|
docker push ${PUSHIMAGE}:latest
|
||||||
docker push ${PUSHIMAGE}:${META_TAG}
|
docker push ${PUSHIMAGE}:${META_TAG}
|
||||||
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
|
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
|
||||||
|
docker push ${PUSHIMAGE}:${SEMVER}
|
||||||
done
|
done
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
|
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
|
||||||
docker rmi \
|
docker rmi \
|
||||||
${DELETEIMAGE}:${META_TAG} \
|
${DELETEIMAGE}:${META_TAG} \
|
||||||
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
|
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
|
||||||
${DELETEIMAGE}:latest || :
|
${DELETEIMAGE}:latest \
|
||||||
|
${DELETEIMAGE}:${SEMVER} || :
|
||||||
done
|
done
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
@@ -699,6 +785,12 @@ pipeline {
|
|||||||
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
|
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
|
||||||
usernameVariable: 'DOCKERUSER',
|
usernameVariable: 'DOCKERUSER',
|
||||||
passwordVariable: 'DOCKERPASS'
|
passwordVariable: 'DOCKERPASS'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
$class: 'UsernamePasswordMultiBinding',
|
||||||
|
credentialsId: 'Quay.io-Robot',
|
||||||
|
usernameVariable: 'QUAYUSER',
|
||||||
|
passwordVariable: 'QUAYPASS'
|
||||||
]
|
]
|
||||||
]) {
|
]) {
|
||||||
retry(5) {
|
retry(5) {
|
||||||
@@ -707,13 +799,14 @@ pipeline {
|
|||||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --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 $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
|
if [ "${CI}" == "false" ]; then
|
||||||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
|
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||||
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
|
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
|
||||||
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
||||||
fi
|
fi
|
||||||
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}"; do
|
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
||||||
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
|
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
|
||||||
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
|
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
|
||||||
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||||
@@ -723,6 +816,9 @@ pipeline {
|
|||||||
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
||||||
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
||||||
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||||
|
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
|
||||||
|
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
|
||||||
|
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||||
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
|
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
|
||||||
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
|
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
|
||||||
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||||
@@ -732,6 +828,9 @@ pipeline {
|
|||||||
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
||||||
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
||||||
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||||
|
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
|
||||||
|
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
|
||||||
|
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||||
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
|
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
|
||||||
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
|
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
|
||||||
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
|
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
|
||||||
@@ -744,24 +843,32 @@ pipeline {
|
|||||||
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||||
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
|
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
|
||||||
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
|
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
|
||||||
|
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
|
||||||
|
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||||
|
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
|
||||||
|
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
|
||||||
docker manifest push --purge ${MANIFESTIMAGE}:latest
|
docker manifest push --purge ${MANIFESTIMAGE}:latest
|
||||||
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
|
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
|
||||||
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
|
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
|
||||||
|
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
|
||||||
done
|
done
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
|
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
|
||||||
docker rmi \
|
docker rmi \
|
||||||
${DELETEIMAGE}:amd64-${META_TAG} \
|
${DELETEIMAGE}:amd64-${META_TAG} \
|
||||||
${DELETEIMAGE}:amd64-latest \
|
${DELETEIMAGE}:amd64-latest \
|
||||||
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
|
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
|
||||||
|
${DELETEIMAGE}:amd64-${SEMVER} \
|
||||||
${DELETEIMAGE}:arm32v7-${META_TAG} \
|
${DELETEIMAGE}:arm32v7-${META_TAG} \
|
||||||
${DELETEIMAGE}:arm32v7-latest \
|
${DELETEIMAGE}:arm32v7-latest \
|
||||||
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
|
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
|
||||||
|
${DELETEIMAGE}:arm32v7-${SEMVER} \
|
||||||
${DELETEIMAGE}:arm64v8-${META_TAG} \
|
${DELETEIMAGE}:arm64v8-${META_TAG} \
|
||||||
${DELETEIMAGE}:arm64v8-latest \
|
${DELETEIMAGE}:arm64v8-latest \
|
||||||
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
|
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} \
|
||||||
|
${DELETEIMAGE}:arm64v8-${SEMVER} || :
|
||||||
done
|
done
|
||||||
docker rmi \
|
docker rmi \
|
||||||
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
|
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
|
||||||
|
|||||||
22
README.md
22
README.md
@@ -33,7 +33,7 @@ Find us at:
|
|||||||
[](https://github.com/linuxserver/docker-qbittorrent/releases)
|
[](https://github.com/linuxserver/docker-qbittorrent/releases)
|
||||||
[](https://github.com/linuxserver/docker-qbittorrent/packages)
|
[](https://github.com/linuxserver/docker-qbittorrent/packages)
|
||||||
[](https://gitlab.com/linuxserver.io/docker-qbittorrent/container_registry)
|
[](https://gitlab.com/linuxserver.io/docker-qbittorrent/container_registry)
|
||||||
[](https://microbadger.com/images/linuxserver/qbittorrent "Get your own version badge on microbadger.com")
|
[](https://quay.io/repository/linuxserver.io/qbittorrent)
|
||||||
[](https://hub.docker.com/r/linuxserver/qbittorrent)
|
[](https://hub.docker.com/r/linuxserver/qbittorrent)
|
||||||
[](https://hub.docker.com/r/linuxserver/qbittorrent)
|
[](https://hub.docker.com/r/linuxserver/qbittorrent)
|
||||||
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/master/)
|
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/master/)
|
||||||
@@ -47,7 +47,7 @@ The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-
|
|||||||
|
|
||||||
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
|
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
|
||||||
|
|
||||||
Simply pulling `ghcr.io/linuxserver/qbittorrent` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
|
Simply pulling `lscr.io/linuxserver/qbittorrent` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
|
||||||
|
|
||||||
The architectures supported by this image are:
|
The architectures supported by this image are:
|
||||||
|
|
||||||
@@ -91,20 +91,20 @@ WebUI\Address=*
|
|||||||
WebUI\ServerDomains=*
|
WebUI\ServerDomains=*
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you are running a very old (3.x) kernel you may run into [this issue](https://github.com/linuxserver/docker-qbittorrent/issues/103) which can be worked around using [this method](https://github.com/linuxserver/docker-qbittorrent/issues/103#issuecomment-831238484)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Here are some example snippets to help you get started creating a container.
|
Here are some example snippets to help you get started creating a container.
|
||||||
|
|
||||||
### docker-compose ([recommended](https://docs.linuxserver.io/general/docker-compose))
|
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
|
||||||
|
|
||||||
Compatible with docker-compose v2 schemas.
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
---
|
---
|
||||||
version: "2.1"
|
version: "2.1"
|
||||||
services:
|
services:
|
||||||
qbittorrent:
|
qbittorrent:
|
||||||
image: ghcr.io/linuxserver/qbittorrent
|
image: lscr.io/linuxserver/qbittorrent
|
||||||
container_name: qbittorrent
|
container_name: qbittorrent
|
||||||
environment:
|
environment:
|
||||||
- PUID=1000
|
- PUID=1000
|
||||||
@@ -121,7 +121,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
```
|
```
|
||||||
|
|
||||||
### docker cli
|
### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/))
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -d \
|
docker run -d \
|
||||||
@@ -136,7 +136,7 @@ docker run -d \
|
|||||||
-v /path/to/appdata/config:/config \
|
-v /path/to/appdata/config:/config \
|
||||||
-v /path/to/downloads:/downloads \
|
-v /path/to/downloads:/downloads \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
ghcr.io/linuxserver/qbittorrent
|
lscr.io/linuxserver/qbittorrent
|
||||||
```
|
```
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
@@ -198,7 +198,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
|
|||||||
* container version number
|
* container version number
|
||||||
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' qbittorrent`
|
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' qbittorrent`
|
||||||
* image version number
|
* image version number
|
||||||
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' ghcr.io/linuxserver/qbittorrent`
|
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/qbittorrent`
|
||||||
|
|
||||||
## Updating Info
|
## Updating Info
|
||||||
|
|
||||||
@@ -216,7 +216,7 @@ Below are the instructions for updating containers:
|
|||||||
|
|
||||||
### Via Docker Run
|
### Via Docker Run
|
||||||
|
|
||||||
* Update the image: `docker pull ghcr.io/linuxserver/qbittorrent`
|
* Update the image: `docker pull lscr.io/linuxserver/qbittorrent`
|
||||||
* Stop the running container: `docker stop qbittorrent`
|
* Stop the running container: `docker stop qbittorrent`
|
||||||
* Delete the container: `docker rm qbittorrent`
|
* Delete the container: `docker rm qbittorrent`
|
||||||
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
|
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
|
||||||
@@ -251,7 +251,7 @@ cd docker-qbittorrent
|
|||||||
docker build \
|
docker build \
|
||||||
--no-cache \
|
--no-cache \
|
||||||
--pull \
|
--pull \
|
||||||
-t ghcr.io/linuxserver/qbittorrent:latest .
|
-t lscr.io/linuxserver/qbittorrent: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 using `multiarch/qemu-user-static`
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
adduser3.118ubuntu2
|
adduser3.118ubuntu2
|
||||||
apt2.0.5
|
apt2.0.6
|
||||||
apt-utils2.0.5
|
apt-utils2.0.6
|
||||||
base-files11ubuntu5.3
|
base-files11ubuntu5.4
|
||||||
base-passwd3.5.47
|
base-passwd3.5.47
|
||||||
bash5.0-6ubuntu1.1
|
bash5.0-6ubuntu1.1
|
||||||
bsdutils1:2.34-0.1ubuntu9.1
|
bsdutils1:2.34-0.1ubuntu9.1
|
||||||
bzip21.0.8-2
|
bzip21.0.8-2
|
||||||
ca-certificates20210119~20.04.1
|
ca-certificates20210119~20.04.2
|
||||||
coreutils8.30-3ubuntu2
|
coreutils8.30-3ubuntu2
|
||||||
curl7.68.0-1ubuntu2.5
|
curl7.68.0-1ubuntu2.7
|
||||||
dash0.5.10.2-6
|
dash0.5.10.2-6
|
||||||
dbus1.12.16-2ubuntu2.1
|
dbus1.12.16-2ubuntu2.1
|
||||||
debconf1.5.73
|
debconf1.5.73
|
||||||
@@ -20,7 +20,7 @@ e2fsprogs1.45.5-2ubuntu1
|
|||||||
fdisk2.34-0.1ubuntu9.1
|
fdisk2.34-0.1ubuntu9.1
|
||||||
file1:5.38-4
|
file1:5.38-4
|
||||||
findutils4.7.0-1ubuntu1
|
findutils4.7.0-1ubuntu1
|
||||||
gcc-10-base10.2.0-5ubuntu1~20.04
|
gcc-10-base10.3.0-1ubuntu1~20.04
|
||||||
geoip-bin1.6.12-6build1
|
geoip-bin1.6.12-6build1
|
||||||
geoip-database20191224-2
|
geoip-database20191224-2
|
||||||
gnupg2.2.19-3ubuntu2.1
|
gnupg2.2.19-3ubuntu2.1
|
||||||
@@ -40,7 +40,7 @@ init-system-helpers1.57
|
|||||||
krb5-locales1.17-6ubuntu4.1
|
krb5-locales1.17-6ubuntu4.1
|
||||||
libacl12.2.53-6
|
libacl12.2.53-6
|
||||||
libapparmor12.13.3-7ubuntu5.1
|
libapparmor12.13.3-7ubuntu5.1
|
||||||
libapt-pkg6.02.0.5
|
libapt-pkg6.02.0.6
|
||||||
libasn1-8-heimdal7.7.0+dfsg-1ubuntu1
|
libasn1-8-heimdal7.7.0+dfsg-1ubuntu1
|
||||||
libassuan02.5.3-7ubuntu2
|
libassuan02.5.3-7ubuntu2
|
||||||
libattr11:2.4.48-5
|
libattr11:2.4.48-5
|
||||||
@@ -54,7 +54,7 @@ libcap-ng00.7.9-2.1build1
|
|||||||
libc-bin2.31-0ubuntu9.2
|
libc-bin2.31-0ubuntu9.2
|
||||||
libcom-err21.45.5-2ubuntu1
|
libcom-err21.45.5-2ubuntu1
|
||||||
libcrypt11:4.4.10-10ubuntu4
|
libcrypt11:4.4.10-10ubuntu4
|
||||||
libcurl47.68.0-1ubuntu2.5
|
libcurl47.68.0-1ubuntu2.7
|
||||||
libdb5.35.3.28+dfsg1-0.6ubuntu2
|
libdb5.35.3.28+dfsg1-0.6ubuntu2
|
||||||
libdbus-1-31.12.16-2ubuntu2.1
|
libdbus-1-31.12.16-2ubuntu2.1
|
||||||
libdebconfclient00.251ubuntu1
|
libdebconfclient00.251ubuntu1
|
||||||
@@ -63,24 +63,24 @@ libexpat12.2.9-1build1
|
|||||||
libext2fs21.45.5-2ubuntu1
|
libext2fs21.45.5-2ubuntu1
|
||||||
libfdisk12.34-0.1ubuntu9.1
|
libfdisk12.34-0.1ubuntu9.1
|
||||||
libffi73.3-4
|
libffi73.3-4
|
||||||
libgcc-s110.2.0-5ubuntu1~20.04
|
libgcc-s110.3.0-1ubuntu1~20.04
|
||||||
libgcrypt201.8.5-5ubuntu1
|
libgcrypt201.8.5-5ubuntu1.1
|
||||||
libgdbm61.18.1-5
|
libgdbm61.18.1-5
|
||||||
libgdbm-compat41.18.1-5
|
libgdbm-compat41.18.1-5
|
||||||
libgeoip11.6.12-6build1
|
libgeoip11.6.12-6build1
|
||||||
libglib2.0-02.64.6-1~ubuntu20.04.3
|
libglib2.0-02.64.6-1~ubuntu20.04.4
|
||||||
libglib2.0-data2.64.6-1~ubuntu20.04.3
|
libglib2.0-data2.64.6-1~ubuntu20.04.4
|
||||||
libgmp102:6.2.0+dfsg-4
|
libgmp102:6.2.0+dfsg-4
|
||||||
libgnutls303.6.13-2ubuntu1.3
|
libgnutls303.6.13-2ubuntu1.6
|
||||||
libgpg-error01.37-1
|
libgpg-error01.37-1
|
||||||
libgssapi3-heimdal7.7.0+dfsg-1ubuntu1
|
libgssapi3-heimdal7.7.0+dfsg-1ubuntu1
|
||||||
libgssapi-krb5-21.17-6ubuntu4.1
|
libgssapi-krb5-21.17-6ubuntu4.1
|
||||||
libhcrypto4-heimdal7.7.0+dfsg-1ubuntu1
|
libhcrypto4-heimdal7.7.0+dfsg-1ubuntu1
|
||||||
libheimbase1-heimdal7.7.0+dfsg-1ubuntu1
|
libheimbase1-heimdal7.7.0+dfsg-1ubuntu1
|
||||||
libheimntlm0-heimdal7.7.0+dfsg-1ubuntu1
|
libheimntlm0-heimdal7.7.0+dfsg-1ubuntu1
|
||||||
libhogweed53.5.1+really3.5.1-2ubuntu0.1
|
libhogweed53.5.1+really3.5.1-2ubuntu0.2
|
||||||
libhx509-5-heimdal7.7.0+dfsg-1ubuntu1
|
libhx509-5-heimdal7.7.0+dfsg-1ubuntu1
|
||||||
libicu6666.1-2ubuntu2
|
libicu6666.1-2ubuntu2.1
|
||||||
libidn2-02.2.0-2
|
libidn2-02.2.0-2
|
||||||
libk5crypto31.17-6ubuntu4.1
|
libk5crypto31.17-6ubuntu4.1
|
||||||
libkeyutils11.6-6ubuntu1
|
libkeyutils11.6-6ubuntu1
|
||||||
@@ -99,22 +99,22 @@ libmpdec22.4.2-3
|
|||||||
libncurses66.2-0ubuntu2
|
libncurses66.2-0ubuntu2
|
||||||
libncursesw66.2-0ubuntu2
|
libncursesw66.2-0ubuntu2
|
||||||
libnetaddr-ip-perl4.079+dfsg-1build4
|
libnetaddr-ip-perl4.079+dfsg-1build4
|
||||||
libnettle73.5.1+really3.5.1-2ubuntu0.1
|
libnettle73.5.1+really3.5.1-2ubuntu0.2
|
||||||
libnghttp2-141.40.0-1build1
|
libnghttp2-141.40.0-1build1
|
||||||
libnpth01.6-1
|
libnpth01.6-1
|
||||||
libp11-kit00.23.20-1ubuntu0.1
|
libp11-kit00.23.20-1ubuntu0.1
|
||||||
libpam0g1.3.1-5ubuntu4.2
|
libpam0g1.3.1-5ubuntu4.3
|
||||||
libpam-modules1.3.1-5ubuntu4.2
|
libpam-modules1.3.1-5ubuntu4.3
|
||||||
libpam-modules-bin1.3.1-5ubuntu4.2
|
libpam-modules-bin1.3.1-5ubuntu4.3
|
||||||
libpam-runtime1.3.1-5ubuntu4.2
|
libpam-runtime1.3.1-5ubuntu4.3
|
||||||
libpcre2-16-010.34-7
|
libpcre2-16-010.34-7
|
||||||
libpcre2-8-010.34-7
|
libpcre2-8-010.34-7
|
||||||
libpcre32:8.39-12build1
|
libpcre32:8.39-12build1
|
||||||
libperl5.305.30.0-9ubuntu0.2
|
libperl5.305.30.0-9ubuntu0.2
|
||||||
libprocps82:3.3.16-1ubuntu2.1
|
libprocps82:3.3.16-1ubuntu2.3
|
||||||
libpsl50.21.0-1ubuntu1
|
libpsl50.21.0-1ubuntu1
|
||||||
libpython3.8-minimal3.8.5-1~20.04.3
|
libpython3.8-minimal3.8.10-0ubuntu1~20.04.1
|
||||||
libpython3.8-stdlib3.8.5-1~20.04.3
|
libpython3.8-stdlib3.8.10-0ubuntu1~20.04.1
|
||||||
libpython3-stdlib3.8.2-0ubuntu2
|
libpython3-stdlib3.8.2-0ubuntu2
|
||||||
libqt5core5a5.12.8+dfsg-0ubuntu1
|
libqt5core5a5.12.8+dfsg-0ubuntu1
|
||||||
libqt5dbus55.12.8+dfsg-0ubuntu1
|
libqt5dbus55.12.8+dfsg-0ubuntu1
|
||||||
@@ -135,21 +135,21 @@ libsmartcols12.34-0.1ubuntu9.1
|
|||||||
libsocket6-perl0.29-1build1
|
libsocket6-perl0.29-1build1
|
||||||
libsqlite3-03.31.1-4ubuntu0.2
|
libsqlite3-03.31.1-4ubuntu0.2
|
||||||
libss21.45.5-2ubuntu1
|
libss21.45.5-2ubuntu1
|
||||||
libssh-40.9.3-2ubuntu2.1
|
libssh-40.9.3-2ubuntu2.2
|
||||||
libssl1.11.1.1f-1ubuntu2.4
|
libssl1.11.1.1f-1ubuntu2.9
|
||||||
libstdc++610.2.0-5ubuntu1~20.04
|
libstdc++610.3.0-1ubuntu1~20.04
|
||||||
libsystemd0245.4-4ubuntu3.6
|
libsystemd0245.4-4ubuntu3.13
|
||||||
libtasn1-64.16.0-2
|
libtasn1-64.16.0-2
|
||||||
libtinfo66.2-0ubuntu2
|
libtinfo66.2-0ubuntu2
|
||||||
libtorrent-rasterbar101.2.13+git20210501.22af326f6c-1ppa1~20.04
|
libtorrent-rasterbar101.2.14+git20211025.eb4bbfd49c-1ppa1~20.04
|
||||||
libudev1245.4-4ubuntu3.6
|
libudev1245.4-4ubuntu3.13
|
||||||
libunistring20.9.10-2
|
libunistring20.9.10-2
|
||||||
libuuid12.34-0.1ubuntu9.1
|
libuuid12.34-0.1ubuntu9.1
|
||||||
libwind0-heimdal7.7.0+dfsg-1ubuntu1
|
libwind0-heimdal7.7.0+dfsg-1ubuntu1
|
||||||
libxml22.9.10+dfsg-5
|
libxml22.9.10+dfsg-5ubuntu0.20.04.1
|
||||||
libzstd11.4.4+dfsg-3ubuntu0.1
|
libzstd11.4.4+dfsg-3ubuntu0.1
|
||||||
locales2.31-0ubuntu9.2
|
locales2.31-0ubuntu9.2
|
||||||
login1:4.8.1-1ubuntu5.20.04
|
login1:4.8.1-1ubuntu5.20.04.1
|
||||||
logsave1.45.5-2ubuntu1
|
logsave1.45.5-2ubuntu1
|
||||||
lsb-base11.1.0ubuntu2
|
lsb-base11.1.0ubuntu2
|
||||||
mawk1.3.4.20200120-2
|
mawk1.3.4.20200120-2
|
||||||
@@ -158,22 +158,22 @@ mount2.34-0.1ubuntu9.1
|
|||||||
ncurses-base6.2-0ubuntu2
|
ncurses-base6.2-0ubuntu2
|
||||||
ncurses-bin6.2-0ubuntu2
|
ncurses-bin6.2-0ubuntu2
|
||||||
netbase6.1
|
netbase6.1
|
||||||
openssl1.1.1f-1ubuntu2.4
|
openssl1.1.1f-1ubuntu2.9
|
||||||
p7zip16.02+dfsg-7build1
|
p7zip16.02+dfsg-7build1
|
||||||
p7zip-full16.02+dfsg-7build1
|
p7zip-full16.02+dfsg-7build1
|
||||||
passwd1:4.8.1-1ubuntu5.20.04
|
passwd1:4.8.1-1ubuntu5.20.04.1
|
||||||
perl5.30.0-9ubuntu0.2
|
perl5.30.0-9ubuntu0.2
|
||||||
perl-base5.30.0-9ubuntu0.2
|
perl-base5.30.0-9ubuntu0.2
|
||||||
perl-modules-5.305.30.0-9ubuntu0.2
|
perl-modules-5.305.30.0-9ubuntu0.2
|
||||||
pinentry-curses1.1.0-3build1
|
pinentry-curses1.1.0-3build1
|
||||||
procps2:3.3.16-1ubuntu2.1
|
procps2:3.3.16-1ubuntu2.3
|
||||||
publicsuffix20200303.0012-1
|
publicsuffix20200303.0012-1
|
||||||
python33.8.2-0ubuntu2
|
python33.8.2-0ubuntu2
|
||||||
python3.83.8.5-1~20.04.3
|
python3.83.8.10-0ubuntu1~20.04.1
|
||||||
python3.8-minimal3.8.5-1~20.04.3
|
python3.8-minimal3.8.10-0ubuntu1~20.04.1
|
||||||
python3-minimal3.8.2-0ubuntu2
|
python3-minimal3.8.2-0ubuntu2
|
||||||
qbittorrent-cli1.7.21116-1
|
qbittorrent-cli1.7.21116-1
|
||||||
qbittorrent-nox1:4.3.5.99~202106151345-7374-667d4e421~ubuntu20.04.1
|
qbittorrent-nox1:4.3.9.99~202110311443-7435-01519b5e7~ubuntu20.04.1
|
||||||
qttranslations5-l10n5.12.8-0ubuntu1
|
qttranslations5-l10n5.12.8-0ubuntu1
|
||||||
readline-common8.0-4
|
readline-common8.0-4
|
||||||
sed4.7-1
|
sed4.7-1
|
||||||
@@ -181,7 +181,7 @@ sensible-utils0.0.12+nmu1
|
|||||||
shared-mime-info1.15-1
|
shared-mime-info1.15-1
|
||||||
sysvinit-utils2.96-2.1ubuntu1
|
sysvinit-utils2.96-2.1ubuntu1
|
||||||
tar1.30+dfsg-7ubuntu0.20.04.1
|
tar1.30+dfsg-7ubuntu0.20.04.1
|
||||||
tzdata2021a-0ubuntu0.20.04
|
tzdata2021e-0ubuntu0.20.04
|
||||||
ubuntu-keyring2020.02.11.4
|
ubuntu-keyring2020.02.11.4
|
||||||
unrar1:5.6.6-2build1
|
unrar1:5.6.6-2build1
|
||||||
unzip6.0-25ubuntu1
|
unzip6.0-25ubuntu1
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ app_setup_block: |
|
|||||||
WebUI\ServerDomains=*
|
WebUI\ServerDomains=*
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you are running a very old (3.x) kernel you may run into [this issue](https://github.com/linuxserver/docker-qbittorrent/issues/103) which can be worked around using [this method](https://github.com/linuxserver/docker-qbittorrent/issues/103#issuecomment-831238484)
|
||||||
|
|
||||||
# changelog
|
# changelog
|
||||||
changelogs:
|
changelogs:
|
||||||
- { date: "10.02.21:", desc: "Rebase to focal." }
|
- { date: "10.02.21:", desc: "Rebase to focal." }
|
||||||
|
|||||||
Reference in New Issue
Block a user