FileBrowser的docker运行了改变密码长度的做法

先定义一,docker-compose.yaml文件

bash 复制代码
version: '3.8'
services:
  filebrowser:
    image: filebrowser/filebrowser:v2.63.17-s6
    container_name: filebrowser
    restart: unless-stopped
    ports:
      - "8989:80"
    volumes:
      # 核心:将宿主机的 dev 目录映射到容器内的 /srv 目录
      - /root/Documents/dev:/srv 
      - ./database:/database
      - ./config:/config
    environment:
      PUID: 1000  # 建议运行 id -u 获取实际值
      PGID: 1000  # 建议运行 id -g 获取实际值
      TZ: Asia/Shanghai
      FB_PASSWORD: 12位不知道行不行。

在定义密码的这里,最小12位,我用短的失败了。

sudo docker compose up -d

会起动,

docker logs filebrowser | grep "password"^C

查看随机密码。

要改成一个12,不方便,于是找改密码方法。小于12.

也许配置文件json中可以定义。但是命令行filebrowser -d file -c file config set help就行看到有一个,config set --minimumPasswordLength 6 这就是改密码的命令。它必然存在db中,另外是前两个,先环境变量,后,json的文件。

因为无法交互式执行,很难找到提示一精确参数名。在docker停下来后,db才有改的权力,不然就是timeout.

以下是停止容器后改的办法。这个容器不常留。

docker run --rm \ -v $(pwd)/database:/database \ -v $(pwd)/config:/config \ filebrowser/filebrowser:v2.63.17-s6 \ filebrowser config set --minimumPasswordLength 6 \ --database /database/filebrowser.db \ --config /config/settings.json ,

改过后就能启动了。

我说下找出和他交互的办法,基于docker 容器。

docker exec -it filebrowser sh

先apk update ,apk add socat

echo 'socat TCP-LISTEN:9990,reuseaddr SYSTEM:"true"&' > newfb

chmod +x. newfb

mv /bin/filebrowser. /fb

mv newfb. /bin/filebrowser

exit

最好先看下,新的,角本的运行情况。

然后重启容器。然后去,用。

/fb -d /database/filebrowser.db -c /config/settings.json config set --minimumPasswordLength 6

完成更改

/fb -d /database/filebrowser.db -c /config/settings.json users update admin --password NEwpass

mv /fb. /bin/filebrowser

把主命令还回去,

这样作是因为,容器需要一个常驻后台,进程,但是这个进程被filebrowser占用,这就无法改变db文件。而且好像db中有最全的配置。相同的情况我在PanIndex中也遇到过。他在离线使用时会因为设置了在线CDN而无法变更设置,也来源于DB文件,基本配置换为本地就能解决。但在容器内又无法能过指令来改。所以先停止,再想法改变sqllite db中的内容。那是用,sqlite3这个客户端改的。

说回这个技巧。

我开发,flask的时候,本质上,最终是要让他做为常驻主进程在容器中的。但是,我们在写码过程中,可以先打开一个无关端口,类似于socat主要是让它不掉线。然后再启动主作务,去写代码和重启。

这就是本次操作的启发吧。虽然可以,写成debug watch relload 这样的动态加载。但是容器的启停报错,不如直接在控制台看到输出来的实在。

相关推荐
吴声子夜歌13 小时前
Docker入门与实战——核心实现技术
运维·docker·容器
死磕音视频13 小时前
n8n 自动化入门:用 Docker 在本机部署 n8n 并搭建第一个 AI 工作流
docker·ai应用·n8n·工作流自动化
李纲明13 小时前
WordPress 安全加固基线:更新策略、文件权限、登录面收缩和备份验证(含回滚注意)
运维·安全·php·wordpress
2501_9377671613 小时前
企业内部文件归集 + 服务器异地备份,轻量化方案选型对比
运维·服务器
志栋智能13 小时前
预算敏感型企业的自动化之路:IT运维低成本转型
运维·人工智能·自动化
盛世宏博智慧档案13 小时前
档案库房实现自动化的恒温恒湿消毒净化关键:恒湿消毒净化一体机
运维·自动化·一体机·恒湿机
wdfk_prog13 小时前
LWIP教程 15:IPv4 与 IPv6——从网络层工作原理到嵌入式工程取舍
运维·开发语言·网络·笔记·学习·智能路由器·ip
Novproxy_Z13 小时前
IPv4 与 IPv6 代理在跨境自动化场景下的选型与风险
运维·自动化·php
Sylvia-girl13 小时前
【二】:Linux基础指令
linux·运维·服务器
竣达技术13 小时前
市电断电电池快耗尽时,防止数据损坏?安全关闭后端WINDOWS系统服务器的方案
运维·服务器·安全