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
|
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 -j$(nproc) \
|
||||||
&& ninja install
|
&& ninja install
|
||||||
|
|
||||||
FROM alpine:latest
|
FROM alpine:3.14
|
||||||
|
|
||||||
RUN apk add --no-cache busybox libgcc openssl qt5-qtbase zlib
|
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)
|
QBITTORRENT_VERSION = $(shell jq -r '.qbittorrent' ./latest.json)
|
||||||
|
|
||||||
CMD = /usr/bin/docker
|
CMD = /usr/bin/docker
|
||||||
IMAGE = ak95888/qbittorrent-rootless
|
IMAGE = mogeko/qbittorrent
|
||||||
PORT = 8080
|
PORT = 8080
|
||||||
CONF_DIR = $(shell pwd)/example/config
|
CONF_DIR = $(shell pwd)/example/config
|
||||||
DL_DIR = $(shell pwd)/example/data
|
DL_DIR = $(shell pwd)/example/data
|
||||||
|
|
|
||||||
19
README.md
19
README.md
|
|
@ -1,6 +1,6 @@
|
||||||
# docker-qbittorrent
|
# 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.
|
Docker image for qBittorrent.
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@ Docker image for qBittorrent.
|
||||||
Pull this image:
|
Pull this image:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker pull ak95888/qbittorrent-rootless
|
docker pull ghcr.io/mogeko/qbittorrent
|
||||||
```
|
```
|
||||||
|
|
||||||
Run with docker cli:
|
Run with docker cli:
|
||||||
|
|
@ -31,7 +31,7 @@ docker run -d \
|
||||||
-v /path/to/config:/config \
|
-v /path/to/config:/config \
|
||||||
-v /path/to/downloads:/downloads \
|
-v /path/to/downloads:/downloads \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
ak95888/qbittorrent-rootless
|
ghcr.io/mogeko/qbittorrent
|
||||||
```
|
```
|
||||||
|
|
||||||
Run with [docker-compose]:
|
Run with [docker-compose]:
|
||||||
|
|
@ -41,7 +41,7 @@ Run with [docker-compose]:
|
||||||
version: 2.1
|
version: 2.1
|
||||||
services:
|
services:
|
||||||
qbittorrent:
|
qbittorrent:
|
||||||
image: ak95888/qbittorrent-rootless
|
image: ghcr.io/mogeko/qbittorrent
|
||||||
container_name: qbittorrent
|
container_name: qbittorrent
|
||||||
user: 1000:100 #optional
|
user: 1000:100 #optional
|
||||||
environment:
|
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:
|
More help message about `qbittorrent-nox`, you can get via:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker run -it ak95888/qbittorrent-rootless --help
|
docker run -it ghcr.io/mogeko/qbittorrent --help
|
||||||
```
|
```
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
@ -89,12 +89,15 @@ The code in this project is released under the [GPL-3.0 License][license].
|
||||||
|
|
||||||
<!-- badge -->
|
<!-- 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_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
|
[image_ver]: https://img.shields.io/docker/v/mogeko/qbittorrent/latest?label=latest&logo=docker
|
||||||
[docker_link]: https://hub.docker.com/r/ak95888/qbittorrent-rootless
|
[unstable]: https://img.shields.io/docker/v/mogeko/qbittorrent?label=edge&logo=docker
|
||||||
|
[docker_link]: https://hub.docker.com/r/mogeko/qbittorrent
|
||||||
|
|
||||||
<!-- links -->
|
<!-- links -->
|
||||||
|
|
||||||
[docker-compose]: https://docs.docker.com/compose
|
[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
|
[podman]: https://podman.io
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"qbittorrent": "4.6.7",
|
"qbittorrent": "4.4.0rc1",
|
||||||
"libtorrent": "2.0.10",
|
"libtorrent": "2.0.4",
|
||||||
"pkgrel": 0
|
"pkgrel": 0
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue