Compare commits
1 commit
master
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0ebefbc371 |
7 changed files with 196 additions and 13 deletions
14
.github/dependabot.yml
vendored
Normal file
14
.github/dependabot.yml
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
version: 2
|
||||
updates:
|
||||
|
||||
# Maintain dependencies for GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
# Maintain dependencies for docker
|
||||
- package-ecosystem: "docker"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
105
.github/workflows/auto-update.yml
vendored
Normal file
105
.github/workflows/auto-update.yml
vendored
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
name: update-bot
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
schedule:
|
||||
- cron: '30 23 * * *'
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
img_ver: ${{ steps.check_ver.outputs.img_ver }}
|
||||
qbt_ver: ${{ steps.check_ver.outputs.qbt_ver }}
|
||||
lib_ver: ${{ steps.check_ver.outputs.lib_ver }}
|
||||
is_new: ${{ steps.check_ver.outputs.is_new }}
|
||||
latest: ${{ steps.check_ver.outputs.latest }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Check version
|
||||
id: check_ver
|
||||
run: |
|
||||
OLD_VER=$(curl -s "${GHCR_URL}" | grep -Po "(\d+\.)+\d+(|beta\d+|rc\d+)-r\d+" | head -1)
|
||||
NEW_TAG=$(curl -s "${REPO_TAGS}" | grep -Po "(\d+\.)+\d+(|beta\d+|rc\d+)\.zip" | head -1)
|
||||
LIB_VER=$(jq -r '.libtorrent' ./latest.json)
|
||||
QBT_VER=$(jq -r '.qbittorrent' ./latest.json)
|
||||
PKG_REL=$(jq -r '.pkgrel' ./latest.json)
|
||||
if echo "${NEW_TAG%.zip}" | grep -Pq "^(\d+\.){2}\d+$"; then
|
||||
echo "::set-output name=latest::type=raw,latest"
|
||||
elif [ ${{ github.event_name }} == 'push' ]; then
|
||||
IMG_VER="${QBT_VER}-r${PKG_REL}"
|
||||
else
|
||||
QBT_VER="${NEW_TAG%.zip}"
|
||||
IMG_VER="${QBT_VER}-r0"
|
||||
fi
|
||||
IS_NEW=$([[ "${IMG_VER}" != "${OLD_VER}" ]] && echo "yes" || echo "no")
|
||||
echo "::set-output name=img_ver::${IMG_VER}"
|
||||
echo "::set-output name=qbt_ver::${QBT_VER}"
|
||||
echo "::set-output name=lib_ver::${LIB_VER}"
|
||||
echo "::set-output name=is_new::${IS_NEW}"
|
||||
env:
|
||||
GHCR_URL: https://github.com/mogeko/docker-qbittorrent/pkgs/container/qbittorrent
|
||||
REPO_TAGS: https://github.com/qbittorrent/qBittorrent/tags
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
needs: check
|
||||
if: ${{ needs.check.outputs.is_new == 'yes' }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Log in to the Container registry
|
||||
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Extract metadata (tags, labels) for Docker
|
||||
id: meta
|
||||
uses: docker/metadata-action@507c2f2dc502c992ad446e3d7a5dfbe311567a96
|
||||
with:
|
||||
images: |
|
||||
${{ github.repository_owner }}/qbittorrent
|
||||
ghcr.io/${{ github.repository_owner }}/qbittorrent
|
||||
tags: |
|
||||
type=edge
|
||||
type=schedule,pattern={{date 'YYYYMMDD'}}
|
||||
type=raw,${{ needs.check.outputs.img_ver }}
|
||||
${{ needs.check.outputs.latest }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
id: build
|
||||
uses: docker/build-push-action@a66e35b9cbcf4ad0ea91ffcaf7bbad63ad9e0229
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
build-args: |
|
||||
QBITTORRENT_VERSION=${{ needs.check.outputs.qbt_ver }}
|
||||
LIBTORRENT_VERSION=${{ needs.check.outputs.lib_ver }}
|
||||
|
||||
- name: Save metadata
|
||||
run: echo ${{ toJSON(steps.build.outputs.metadata) }} > ${{ github.workspace }}/meta.json
|
||||
|
||||
- name: Update metadata
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: metadata
|
||||
path: ${{ github.workspace }}/meta.json
|
||||
61
.github/workflows/build.yml
vendored
Normal file
61
.github/workflows/build.yml
vendored
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
name: Build Container
|
||||
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
new_ver: ${{ steps.check_ver.outputs.new_ver }}
|
||||
latest: ${{ steps.check_ver.outputs.latest }}
|
||||
steps:
|
||||
- name: Check version
|
||||
id: check_ver
|
||||
run: |
|
||||
NEW_TAG=$(curl -s "${REPO_TAGS}" | grep -Po "(\d+\.)+\d+(|beta\d+|rc\d+)\.zip" | head -1)
|
||||
if echo "${NEW_TAG%.zip}" | grep -Pq "^(\d+\.){2}\d+$"; then
|
||||
echo "::set-output name=latest::type=raw,latest"
|
||||
fi
|
||||
echo "::set-output name=new_ver::${NEW_TAG%.zip}-r0"
|
||||
env:
|
||||
REPO_TAGS: https://github.com/qbittorrent/qBittorrent/tags
|
||||
|
||||
meta:
|
||||
runs-on: ubuntu-latest
|
||||
needs: check
|
||||
permissions:
|
||||
packages: write
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Extract metadata (tags, labels) for Docker
|
||||
id: meta
|
||||
uses: docker/metadata-action@507c2f2dc502c992ad446e3d7a5dfbe311567a96
|
||||
with:
|
||||
images: |
|
||||
${{ github.repository_owner }}/qbittorrent
|
||||
ghcr.io/${{ github.repository_owner }}/qbittorrent
|
||||
tags: |
|
||||
type=edge
|
||||
type=schedule,pattern={{date 'YYYYMMDD'}}
|
||||
type=raw,${{ needs.check.outputs.new_ver }}
|
||||
${{ needs.check.outputs.latest }}
|
||||
|
||||
- name: Save status
|
||||
run: echo ${{ toJSON(steps.meta.outputs.json) }} > ${{ github.workspace }}/status.json
|
||||
|
||||
- name: Update status
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: status
|
||||
path: ${{ github.workspace }}/status.json
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
FROM alpine:latest as base_clang
|
||||
FROM alpine:3.14 as base_clang
|
||||
|
||||
RUN apk add --no-cache boost-build boost-dev build-base clang-dev cmake ninja
|
||||
|
||||
|
|
@ -41,7 +41,7 @@ RUN cmake . -DCMAKE_BUILD_TYPE=Release \
|
|||
&& ninja -j$(nproc) \
|
||||
&& ninja install
|
||||
|
||||
FROM alpine:latest
|
||||
FROM alpine:3.14
|
||||
|
||||
RUN apk add --no-cache busybox libgcc openssl qt5-qtbase zlib
|
||||
|
||||
|
|
|
|||
2
Makefile
2
Makefile
|
|
@ -2,7 +2,7 @@ LIBTORRENT_VERSION = $(shell jq -r '.libtorrent' ./latest.json)
|
|||
QBITTORRENT_VERSION = $(shell jq -r '.qbittorrent' ./latest.json)
|
||||
|
||||
CMD = /usr/bin/docker
|
||||
IMAGE = ak95888/qbittorrent-rootless
|
||||
IMAGE = mogeko/qbittorrent
|
||||
PORT = 8080
|
||||
CONF_DIR = $(shell pwd)/example/config
|
||||
DL_DIR = $(shell pwd)/example/data
|
||||
|
|
|
|||
19
README.md
19
README.md
|
|
@ -1,6 +1,6 @@
|
|||
# docker-qbittorrent
|
||||
|
||||
[![image_size]][docker_link] [![image_ver]][docker_link]
|
||||
[![ci_icon]][ci_link] [![image_size]][docker_link] [![image_ver]][docker_link] [![unstable]][docker_link]
|
||||
|
||||
Docker image for qBittorrent.
|
||||
|
||||
|
|
@ -15,7 +15,7 @@ Docker image for qBittorrent.
|
|||
Pull this image:
|
||||
|
||||
```shell
|
||||
docker pull ak95888/qbittorrent-rootless
|
||||
docker pull ghcr.io/mogeko/qbittorrent
|
||||
```
|
||||
|
||||
Run with docker cli:
|
||||
|
|
@ -31,7 +31,7 @@ docker run -d \
|
|||
-v /path/to/config:/config \
|
||||
-v /path/to/downloads:/downloads \
|
||||
--restart unless-stopped \
|
||||
ak95888/qbittorrent-rootless
|
||||
ghcr.io/mogeko/qbittorrent
|
||||
```
|
||||
|
||||
Run with [docker-compose]:
|
||||
|
|
@ -41,7 +41,7 @@ Run with [docker-compose]:
|
|||
version: 2.1
|
||||
services:
|
||||
qbittorrent:
|
||||
image: ak95888/qbittorrent-rootless
|
||||
image: ghcr.io/mogeko/qbittorrent
|
||||
container_name: qbittorrent
|
||||
user: 1000:100 #optional
|
||||
environment:
|
||||
|
|
@ -74,7 +74,7 @@ The `qbittorrent-nox`'s options may be supplied via environment variables[^2]. F
|
|||
More help message about `qbittorrent-nox`, you can get via:
|
||||
|
||||
```shell
|
||||
docker run -it ak95888/qbittorrent-rootless --help
|
||||
docker run -it ghcr.io/mogeko/qbittorrent --help
|
||||
```
|
||||
|
||||
## License
|
||||
|
|
@ -89,12 +89,15 @@ The code in this project is released under the [GPL-3.0 License][license].
|
|||
|
||||
<!-- badge -->
|
||||
|
||||
[ci_icon]: https://github.com/mogeko/docker-qbittorrent/actions/workflows/auto-update.yml/badge.svg
|
||||
[ci_link]: https://github.com/mogeko/docker-qbittorrent/actions/workflows/auto-update.yml
|
||||
[image_size]: https://img.shields.io/docker/image-size/mogeko/qbittorrent/latest?logo=docker
|
||||
[image_ver]: https://img.shields.io/docker/v/ak95888/qbittorrent-rootless/latest?label=latest&logo=docker
|
||||
[docker_link]: https://hub.docker.com/r/ak95888/qbittorrent-rootless
|
||||
[image_ver]: https://img.shields.io/docker/v/mogeko/qbittorrent/latest?label=latest&logo=docker
|
||||
[unstable]: https://img.shields.io/docker/v/mogeko/qbittorrent?label=edge&logo=docker
|
||||
[docker_link]: https://hub.docker.com/r/mogeko/qbittorrent
|
||||
|
||||
<!-- links -->
|
||||
|
||||
[docker-compose]: https://docs.docker.com/compose
|
||||
[license]: https://codeberg.org/ak95/docker-qbittorrent/src/branch/master/LICENSE
|
||||
[license]: https://github.com/mogeko/docker-qbittorrent/blob/master/LICENSE
|
||||
[podman]: https://podman.io
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"qbittorrent": "4.6.7",
|
||||
"libtorrent": "2.0.10",
|
||||
"qbittorrent": "4.4.0rc1",
|
||||
"libtorrent": "2.0.4",
|
||||
"pkgrel": 0
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue