思源笔记部署问题 -docker

本贴最后更新于 377 天前,其中的信息可能已经时移俗易

通过 docker compose 部署的,目录权限属于 root,但是给了权限 777,目录也是空的,执行 compose 的时候用的 sudo 按理说也是 root 执行的,看到报错 read only [false],这是说只有可读权限吗?,有点不理解,求大佬帮忙看一下

目录权限

orangepi@orangepi5:/mnt/sata2-1/siyuan/workspace$ ll
total 8
drwxrwxrwx 2 root root 4096 Aug 17 21:30 ./
drwxr-xr-x 3 root root 4096 Aug 17 21:30 ../

docker file

version: '3'
services:
  siyuan:
    image: b3log/siyuan
    volumes:
      - /mnt/sata2-1/siyuan/workspace:/siyuan/workspace
    working_dir: /siyuan/workspace/
    user: 0:0
    #    user: myuser:mygroup
    ports:
     - 6806:6806
    #restart: unless-stopped

docker logs

I 2023/12/11 13:29:50 runtime.go:74: kernel is booting:
    * ver [2.9.9]
    * arch [arm64]
    * os [alpine]
    * pid [1]
    * runtime mode [prod]
    * working directory [/siyuan/workspace]
    * read only [false]
    * container [docker]
    * database [ver=20220501]
    * workspace directory [/root/SiYuan]
E 2023/12/11 13:29:50 conf.go:405: open language configuration folder [/siyuan/workspace/appearance/langs] failed: open /siyuan/workspace/appearance/langs: no such file or directory
E 2023/12/11 13:29:50 runtime.go:159: check file system status failed: open /siyuan/workspace/appearance/langs: no such file or directory, github.com/siyuan-note/siyuan/kernel/model.initLang()
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    23019 引用 • 92593 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8448 引用 • 38488 回帖 • 155 关注
2 操作
1070758302 在 2023-12-11 14:15:16 更新了该帖
1070758302 在 2023-12-11 13:52:37 更新了该帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • user 换成 1000:1000 试试

    1 回复
  • 1070758302

    不可以,id1000 的话就是普通用户了,管理员的是 0

    orangepi@orangepi5:~/docker/siyuan$ id
    uid=1000(orangepi) gid=1000(orangepi) groups=1000(orangepi),5(tty),6(disk),20(dialout),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),101(systemd-journal),106(input),111(netdev),999(docker)
    
    
  • 容器里运行的用户是 1000,不是容器外主机上的。

    1 回复
  • 把宿主机上的 /mnt/sata2-1/siyuan/workspace 的用户和权限组都改成 1000 就可以了

    或者用子用户创建一个目录,然后再用 sudo 来启动 docker,也可以。只要宿主机里面的目录权限不是 root 就能正常启动。

    1 回复
  • 1070758302

    这样子,不过试了还是不行,难搞

  • 1070758302

    dockerfile 改成这样 user: 1000:1000

    用户组也改了,用的 sudo 运行的,不行

    ll /mnt/sata2-1/siyuan/workspace/
    total 8
    drwxrwxrwx 2 orangepi orangepi 4096 Aug 17 21:30 ./
    drwxr-xr-x 3 root     root     4096 Aug 17 21:30 ../
    
    
    1 回复
  • 试试我这个命令吧,目录你自己修改一下

    sudo docker run -d \
        --name siyuan \
        -v /home/mu/siyuan/sy:/home/siyuan/sy \
        -p 30000:6806 \
        --restart=always \
        b3log/siyuan:latest \
        --workspace=/home/siyuan/sy \
        --lang=zh_CN \
        --accessAuthCode=123456
    

    你的 dockerfile 里面的配置有问题,缺了好多思源的命令,workspace 要用命令指定的。日志里面最后那个 /root/Siyuan 才是真的思源 workspace,和 docker 里面配置的工作路径没有关系。你这里的映射并没有成功

    1 回复
  • 实际上挂载目录内部的东西都只需要 1000:1000 的权限就够了

    image.png

    另外就是我没指定 workdir,不知道是不是这个错乱导致的问题

    1 回复
  • 1070758302

    我改成 compose 的格式还是不行

    version: '3'
    services:
      siyuan:
        image: b3log/siyuan
        volumes:
          - /mnt/sata2-1/siyuan/workspace:/siyuan/workspace
        working_dir: /siyuan/workspace/
        user: 1000:1000
        #    user: myuser:mygroup
        ports:
         - 6806:6806
        #restart: unless-stopped
        command: >
          --workspace=/siyuan/workspace
          --lang=zh_CN
          --accessAuthCode=123456
    
    1 回复
  • 1070758302

    你是 sudo 运行的 docker 还是正常用户

    1 回复
  • 运行 docker 是谁无所谓的,你需要关注的是容器内部的状态。

    是否普通用户能够不加 sudo 运行 docker 命令,就看 docker 的 usergroup 里有谁而已

  • 先用 docker cli 跑起来再说,我这个命令实测可以用,compose 我不是很了解

  • 1070758302

    破案了,

    其实原因是因为这个

    open language configuration folder [/siyuan/appearance/langs] failed: open /siyuan/appearance/langs: no such file or directory

    我用 docker run 执行的话创建的在 conf 下,但他显示的读的是和 conf 同级的目录,我的 conf 下也是空的,就很离谱

    E 2023/12/11 13:29:50 conf.go:405: open language configuration folder [/siyuan/workspace/appearance/langs] failed: open /siyuan/workspace/appearance/langs: no such file or directory
    E 2023/12/11 13:29:50 runtime.go:159: check file system status failed: open /siyuan/workspace/appearance/langs: no such file or directory, github.com/siyuan-note/siyuan/kernel/model.initLang()
    
    作者:1070758302
    链接:https://ld246.com/article/1702273226660
    来源:链滴
    协议:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/
    
请输入回帖内容 ...