*标题中“Docker”所指为仅qBittorrent使用Docker部署,而Alist位于宿主机中。
*本文着重解决由于Alist每次重启时都将temp(alist本地缓存目录)用户&用户组设置为root:root,权限设置为755,导致位于容器中的qBittorrent无法对其读写的问题(webui提示下载错误)
一、安装Alist
有手就行自行百度或查看官方文档[安装]
后按自身需求参照文档自定修改配置文件
# 附一键脚本(官) curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install
二、Docker部署qBittorrent
1、创建&运行容器
运行以下命令即可
注意按需修改相关参数
# 设置环境变量 # QBT_VERSION qbit版本,默认latest(最新) # QBT_WEBUI_PORT qbit webui端口(网页管理) # QBT_CONFIG_PATH 存储qbit配置文件的目录 # QBT_DOWNLOADS_PATH qbit默认下载位置(宿主机) # QBT_ALIST_TEMP alist的temp/qbittorrent目录 export \ QBT_EULA=accept \ QBT_VERSION=latest \ PAGID=0 \ PGID=0 \ PUID=0 \ QBT_WEBUI_PORT= \ QBT_CONFIG_PATH="" \ QBT_DOWNLOADS_PATH="" \ QBT_ALIST_TEMP="" docker run \ -t \ --restart=always \ --privileged=true \ --name qbittorrent-nox \ --stop-timeout 1800 \ --tmpfs /tmp \ -e QBT_EULA \ -e QBT_WEBUI_PORT \ -e PAGID=0 \ -e PGID=0 \ -e PUID=0 \ -p "$QBT_WEBUI_PORT":"$QBT_WEBUI_PORT"/tcp \ -p 6881:6881/tcp \ -p 6881:6881/udp \ -v "$QBT_CONFIG_PATH":/config \ -v "$QBT_DOWNLOADS_PATH":/downloads \ -v "$QBT_ALIST_TEMP":"$QBT_ALIST_TEMP" \ qbittorrentofficial/qbittorrent-nox:${QBT_VERSION}
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的步骤已经规避了该问题)
若按qb官方提供的命令进行部署 (挂载alsit的temp)
export \ QBT_EULA=<put_accept_here> \ QBT_VERSION=devel \ QBT_WEBUI_PORT=8080 \ QBT_CONFIG_PATH="<your_path>/config" \ QBT_DOWNLOADS_PATH="<your_path>/downloads" \ QBT_ALIST_TEMP="/data/alist/temp/qbittorrent" docker run \ -t \ --name qbittorrent-nox \ --read-only \ --rm \ --stop-timeout 1800 \ --tmpfs /tmp \ -e QBT_EULA \ -e QBT_WEBUI_PORT \ -e TZ=UTC \ -p "$QBT_WEBUI_PORT":"$QBT_WEBUI_PORT"/tcp \ -p 6881:6881/tcp \ -p 6881:6881/udp \ -v "$QBT_CONFIG_PATH":/config \ -v "$QBT_DOWNLOADS_PATH":/downloads \ -v "$QBT_ALIST_TEMP":"$QBT_ALIST_TEMP" \ qbittorrent-nox:"$QBT_VERSION"
qbit进程将以qbtUser用户运行,id为1000
主机中id=1000的用户为www,但temp目录owner为root,权限为755,造成不可写
尝试调整权限为775后正常,但重启alist后该目录权限又被改回755,此路不通
于是在创建qBittorrent容器时,加入以下环境变量:
-e PAGID=0 \ -e PGID=0 \ -e PUID=0 \
即设置容器中qbtUser用户的uid,gid为主机中的root 的uid,gid(具体参见docker-qBittorrent-nox中entrypoint.sh)同时删除容器的只读属性(不删貌似改不了)
启动即可见
解决问题