From 5dabf2309026ccfc9eedcca1a8dceaee59acc2ba Mon Sep 17 00:00:00 2001 From: thespad Date: Sat, 25 May 2024 21:20:46 +0100 Subject: [PATCH] Drop qbittorrent-cli --- Dockerfile | 13 +------------ Dockerfile.aarch64 | 13 +------------ Jenkinsfile | 47 ++++++++++++++-------------------------------- README.md | 7 ++++--- jenkins-vars.yml | 7 +++---- readme-vars.yml | 3 ++- 6 files changed, 25 insertions(+), 65 deletions(-) diff --git a/Dockerfile b/Dockerfile index 09372ac..6470e4d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,18 +31,7 @@ RUN \ fi && \ apk add -U --upgrade --no-cache \ qbittorrent-nox==${QBITTORRENT_VERSION} && \ - echo "***** install qbitorrent-cli ****" && \ - mkdir /qbt && \ - if [ -z ${QBT_CLI_VERSION+x} ]; then \ - QBT_CLI_VERSION=$(curl -sL "https://api.github.com/repos/fedarovich/qbittorrent-cli/releases/latest" \ - | jq -r '. | .tag_name'); \ - fi && \ - curl -o \ - /tmp/qbt.tar.gz -L \ - "https://github.com/fedarovich/qbittorrent-cli/releases/download/${QBT_CLI_VERSION}/qbt-linux-alpine-x64-${QBT_CLI_VERSION#v}.tar.gz" && \ - tar xf \ - /tmp/qbt.tar.gz -C \ - /qbt && \ + printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ echo "**** cleanup ****" && \ rm -rf \ /root/.cache \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index f49b8da..33bcbdd 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -31,18 +31,7 @@ RUN \ fi && \ apk add -U --upgrade --no-cache \ qbittorrent-nox==${QBITTORRENT_VERSION} && \ - echo "***** install qbitorrent-cli ****" && \ - mkdir /qbt && \ - if [ -z ${QBT_CLI_VERSION+x} ]; then \ - QBT_CLI_VERSION=$(curl -sL "https://api.github.com/repos/fedarovich/qbittorrent-cli/releases/latest" \ - | jq -r '. | .tag_name'); \ - fi && \ - curl -o \ - /tmp/qbt.tar.gz -L \ - "https://github.com/fedarovich/qbittorrent-cli/releases/download/${QBT_CLI_VERSION}/qbt-linux-alpine-arm64-${QBT_CLI_VERSION#v}.tar.gz" && \ - tar xf \ - /tmp/qbt.tar.gz -C \ - /qbt && \ + printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ echo "**** cleanup ****" && \ rm -rf \ /root/.cache \ diff --git a/Jenkinsfile b/Jenkinsfile index d7f2670..a34e119 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -33,9 +33,9 @@ pipeline { CI_WEB='true' CI_PORT='8080' CI_SSL='false' - CI_DELAY='120' - CI_DOCKERENV='TZ=US/Pacific' - CI_AUTH='user:password' + CI_DELAY='60' + CI_DOCKERENV='' + CI_AUTH='' CI_WEBPATH='' } stages { @@ -299,7 +299,7 @@ pipeline { echo "Jenkinsfile is up to date." fi echo "Starting Stage 2 - Delete old templates" - OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf" + OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml" for i in ${OLD_TEMPLATES}; do if [[ -f "${i}" ]]; then TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" @@ -529,6 +529,7 @@ pipeline { --label \"org.opencontainers.image.title=Qbittorrent\" \ --label \"org.opencontainers.image.description=The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.\" \ --no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \ + --provenance=false --sbom=false \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." } } @@ -560,6 +561,7 @@ pipeline { --label \"org.opencontainers.image.title=Qbittorrent\" \ --label \"org.opencontainers.image.description=The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.\" \ --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \ + --provenance=false --sbom=false \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." } } @@ -588,6 +590,7 @@ pipeline { --label \"org.opencontainers.image.title=Qbittorrent\" \ --label \"org.opencontainers.image.description=The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.\" \ --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \ + --provenance=false --sbom=false \ --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(5) { @@ -711,7 +714,7 @@ pipeline { --shm-size=1gb \ -v /var/run/docker.sock:/var/run/docker.sock \ -e IMAGE=\"${IMAGE}\" \ - -e DELAY_START=\"${CI_DELAY}\" \ + -e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \ -e TAGS=\"${CI_TAGS}\" \ -e META_TAG=\"${META_TAG}\" \ -e PORT=\"${CI_PORT}\" \ @@ -819,35 +822,13 @@ pipeline { docker push ${MANIFESTIMAGE}:amd64-${SEMVER} docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} fi - docker manifest push --purge ${MANIFESTIMAGE}:latest || : - docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest - docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8 - docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : - docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8 - docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || : - docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} - docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8 + 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 manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || : - docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} - docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8 - fi - token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token') - digest=$(curl -s \ - --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ - --header "Authorization: Bearer ${token}" \ - "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest") - if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then - docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || : - docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest - docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest - fi - docker manifest push --purge ${MANIFESTIMAGE}:latest - docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} - docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} - if [ -n "${SEMVER}" ]; then - docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} + docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} fi done ''' diff --git a/README.md b/README.md index 92ac84d..085dede 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Find us at: # [linuxserver/qbittorrent](https://github.com/linuxserver/docker-qbittorrent) -[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fqbittorrent?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fqbittorrent) +[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fqbittorrent?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh) [![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-qbittorrent.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-qbittorrent) [![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-qbittorrent.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-qbittorrent/releases) [![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-qbittorrent/packages) @@ -105,7 +105,7 @@ services: - WEBUI_PORT=8080 - TORRENTING_PORT=6881 volumes: - - /path/to/appdata/config:/config + - /path/to/qbittorrent/appdata/config:/config - /path/to/downloads:/downloads ports: - 8080:8080 @@ -127,7 +127,7 @@ docker run -d \ -p 8080:8080 \ -p 6881:6881 \ -p 6881:6881/udp \ - -v /path/to/appdata/config:/config \ + -v /path/to/qbittorrent/appdata/config:/config \ -v /path/to/downloads:/downloads \ --restart unless-stopped \ lscr.io/linuxserver/qbittorrent:latest @@ -311,6 +311,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **25.05.24:** - Remove qbittorrent-cli as it still requires openssl 1.1 which is EOL. * **14.02.24:** - Only set/override torrenting port if the optional env var is set. * **14.02.24:** - Add torrenting port support. * **31.01.24:** - Remove obsolete compat packages. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index d7a4f07..ed65716 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -6,7 +6,6 @@ external_type: alpine_repo release_type: stable release_tag: latest ls_branch: master -build_armhf: false repo_vars: - CONTAINER_NAME = 'qbittorrent' - BUILD_VERSION_ARG = 'QBITTORRENT_VERSION' @@ -24,7 +23,7 @@ repo_vars: - CI_WEB='true' - CI_PORT='8080' - CI_SSL='false' - - CI_DELAY='120' - - CI_DOCKERENV='TZ=US/Pacific' - - CI_AUTH='user:password' + - CI_DELAY='60' + - CI_DOCKERENV='' + - CI_AUTH='' - CI_WEBPATH='' diff --git a/readme-vars.yml b/readme-vars.yml index 2ef2881..a26d3fb 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -23,7 +23,7 @@ common_param_env_vars_enabled: true param_container_name: "{{ project_name }}" param_usage_include_vols: true param_volumes: - - { vol_path: "/config", vol_host_path: "/path/to/appdata/config", desc: "Contains all relevant configuration files." } + - { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/appdata/config", desc: "Contains all relevant configuration files." } - { vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Location of downloads on disk." } param_usage_include_ports: true param_ports: @@ -58,6 +58,7 @@ app_setup_block: | # changelog changelogs: + - { date: "25.05.24:", desc: "Remove qbittorrent-cli as it still requires openssl 1.1 which is EOL." } - { date: "14.02.24:", desc: "Only set/override torrenting port if the optional env var is set." } - { date: "14.02.24:", desc: "Add torrenting port support." } - { date: "31.01.24:", desc: "Remove obsolete compat packages."}