收起左侧

飞牛FnOS部署PicHome无法同步大容量Eagle库?一招解决权限/数据库卡死问题!

0
回复
95
查看
[ 复制链接 ]

0

主题

0

回帖

0

牛值

江湖小虾

前言

最近在飞牛(FnOS)上通过 Docker Compose 部署了 PicHome,原本以为挂载好路径、给了 chmod 777 权限就万事大吉。结果发现:

  • 小库正常:添加小的 Eagle 库能识别。
  • 大库卡死:一旦导入容量较大的 Eagle 素材库,点击同步/扫描时,进度条不动,或者貌似更新100%,实际没有真正入库,前台没有任何显示。
  • 现象:虽然网页能看到文件夹,但程序似乎对文件没有完整的控制权(文件锁问题)。

经过一顿排查,终于发现问题根源:Docker 容器内部用户 ID 与飞牛系统用户 ID 不匹配。

核心原因

很多教程只教大家用 chmod -R 777 暴力开权限。虽然这能让容器“看见”文件,但对于需要频繁读写、生成缓存、处理文件锁的大型 Eagle 库,仅仅有读写权限是不够的,还需要正确的文件“所有者”。

  • 误区:很多人以为 Web 容器默认用户 ID 是 33 (Debian/Ubuntu 标准)。
  • 真相:PicHome 的 Docker 镜像基于 Alpine Linux,其内置的 www-data 用户 ID 其实是 82!

当然是不是82,我们后面验证一下即可。

如果你的素材库所有者是 root 或 admin (UID 1000),容器在处理大量文件时就会因为权限冲突被系统“**”出来。

✅ 终极解决方案

不需要复杂配置,只需要通过 SSH 执行一条命令,把素材库“过户”给容器用户即可。

步骤 1:确认容器用户 ID

如果你想验证一下,可以 SSH 连接飞牛,输入:

codeBash

sudo docker exec pichome-web id www-data
# 注意:pichome-web 是你的容器名

有人就要问,这个 pichome-web 的名字他妈在哪里?

你会发现输出的是 uid=82(www-data),实锤了就是 82。当然验证出来是33那后面的命令就填33。

步骤 2:执行“过户”命令(关键!)

在 SSH 中执行以下命令,将你的 Eagle 库文件夹所有者改为 82:

codeBash

# 请将下面的路径替换为你自己的真实素材库路径
sudo chown -R 82:82 /vol1/1000/你的素材库目录/library

解释:chown 是修改所有者,82:82 对应的是 Alpine 系统里 www-data 的用户 ID 和组 ID。(如果验证出来是33,那么就是33:33)

步骤 3:重启并同步

  • 回到飞牛 Docker 管理器,重启 PicHome 容器。
  • 进入 PicHome 网页后台 -> 库管理。
  • 再次点击 “同步” 或 “扫描”。

这时候你会发现,几万张图片的大库也能顺滑跑完进度条了!

附:Docker Compose 推荐配置

为了防止新手在部署时遇到数据库连接问题,顺便贴一个通过验证的 docker-compose.yaml 配置:

codeYaml

version: '3'
services:
  db:
    image: mysql:5.7
    container_name: pichome-db
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: pichome
      MYSQL_USER: pichome
      MYSQL_PASSWORD: pichome123
    volumes:
      - ./mysql:/var/lib/mysql
    restart: always

  pichome:
    image: oaooa/pichome
    container_name: pichome-web
    depends_on:
      - db
    ports:
      - "9000:80"  # 端口根据自己需求改
    volumes:
      - ./html:/var/www/html
      # 挂载你的 Eagle 库,注意左边改成你的真实路径
      - /vol1/1000/你的素材库目录/library:/library
    environment:
      - DB_HOST=db
      - DB_USER=pichome
      - DB_PASSWORD=pichome123
      - DB_NAME=pichome
    restart: always

希望这个经验能帮到同样卡在“大库同步”上的飞牛玩家!

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则