Centos中使用Alist和qBittorrent(Docker)实现离线下载
*标题中“Docker”所指为仅qBittorrent使用Docker部署,而Alist位于宿主机中。
*本文着重解决由于Alist每次重启时都将temp(alist本地缓存目录)用户&用户组设置为root:root,权限设置为755,导致位于容器中的qBittorrent无法对其读写的问题(webui提示下载错误)
一、安装Alist
有手就行自行百度或查看官方文档[安装]
后按自身需求参照文档自定修改配置文件
二、Docker部署qBittorrent
1、创建&运行容器
运行以下命令即可
注意按需修改相关参数
挂载temp目录时,请务必直接挂载alist的temp目录而不是temp/qbittorrent,当主机中qbittorrent目录未创建时,下载同样 报错
2、更改账密
登录webui,地址:http://容器宿主机ip:环境变量中设置的QBT_WEBUI_PORT
默认账户:admin
默认密码:adminadmin

设置完后拨动滚轮向下翻,点击最下面的保存即可
三、设置Alist
访问 http://alist域名或ip:端口/@manage/settings/other

在这里填写http(s)://qbit用户名:qbit密码@qbit宿主机ip:qbit端口/
点击设置qBittorrent,右上角出现下图气泡即为设置成功

完成后就可以在离线下载页面选择qBittorrent下载了

四、错误分析与解决
UP目前只遇到了这个问题,所以只阐述该问题的现象和解决办法(上文部署qbit的步骤已经规避了该问题)
*挂载temp目录时,请务必直接挂载alist的temp目录而不是temp/qbittorrent,当主机中qbittorrent目录未创建时,下载同样 报错
若按qb官方提供的命令进行部署 (挂载alsit的temp)
qbit进程将以qbtUser用户运行,id为1000

主机中id=1000的用户为www,但temp目录owner为root,权限为755,造成不可写


尝试调整权限为775后正常,但重启alist后该目录权限又被改回755,此路不通
于是在创建qBittorrent容器时,加入以下环境变量:
即设置容器中qbtUser用户的uid,gid为主机中的root 的uid,gid(具体参见docker-qBittorrent-nox中entrypoint.sh)同时删除容器的只读属性(不删貌似改不了)
启动即可见

解决问题
