关于 Docker 思源笔记使用 Docker-compose 更改授权码的问题

私有化部署

按照 思源笔记 docker 部署及第三方同步 做的 docker 私有化部署。

yml 文件如下:

version: '3'

services:
  siyuan:
    image: b3log/siyuan:latest
    container_name: fllsiyuan
    restart: always
    volumes:
      - /siyuan:/root/document/fllsynote
    command: [--workspace=/root/document/fllsynote,--lang=zh_CN,--accessAuthCode=88888888]
    ports:  
      - "7777:6806"

更改授权码

长期使用后,授权码 8 个 8 太长,想修改为 11。

使用命令


docker-compose stop siyuan

然后修改 yml 文件中授权码为 11,如下。

version: '3'

services:
  siyuan:
    image: b3log/siyuan:latest
    container_name: fllsiyuan
    restart: always
    volumes:
      - /siyuan:/root/document/fllsynote
    command: [--workspace=/root/document/fllsynote,--lang=zh_CN,--accessAuthCode=11]
    ports:  
      - "7777:6806"

然后

docker-compose start siyuan

经测试授权码未更改为 11,原先的思源笔记数据还在。

使用新的命令

docker-compose up -d

经测试授权码更改为 11,原先的思源笔记数据丢失(提前已备份)。

问题

请教各位贤达,这是怎么回事?如何达到目的(docker-compose 修改授权码,思源笔记数据不丢失)?

还是 docker-compose 不能实现?

  • 思源笔记

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

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

    22391 引用 • 89649 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • docker-compose start 是不会更新 yml 文件的修改的,up 才会,所以你 start 之后访问授权码没有变化是正常的。

    至于数据丢失,不太清楚什么问题。如果你没有修改过 volumes 的绑定,应该不会数据丢失才对。请检查宿主机的 /siyuan 目录里面有没有内容。现在看你这个设置我感觉你是不是把宿主机和容器内的路径搞反了。

  • 其他回帖
  • 首先,您发的评论都没有回复别人,对方是收不到通知的。

    其次,我说的不了解 docker 运行原理说的是 docker 技术层面的东西。像这里的 volumes 设置和 ports 设置还有 command,全都是和 dockerfile 以及 docker 容器是如何被 build、run 息息相关的,虽然不是说你不懂 docker 技术架构就不能用 docker。但是会给你带来很多麻烦,比如您现在做的一堆错误尝试都是能避免的……

    不过有一点您说的很对,那就是做这些操作之前一定要备份好笔记。

    举个例子,最好的试错和学习方式,是拿一个 demo 镜像来看看这些 volumes 设置和 ports 设置还有 command 到底是什么东西,而不是拿需要特殊配置的思源容器来实验。

    最后,我看了您引用的那个教程,那个教程里面写的也有点误导人,容器里面用的反而是 root 路径,容器外面用的是 /siyuan,很容易产生误解。因为一般情况下都是不建议直接在 linux 宿主机的 / 根路径下创建文件夹存放数据的。这就好比你在 Windows 电脑上专门分了个盘作为思源的工作空间路径,很容易出现问题。

    1 回复
    1 操作
    muxue 在 2024-07-25 19:41:58 更新了该回帖
  • daziduan
    作者

    @fradeet

    你好。我确实想搞明白,这种方法是否可行。

    我按你的建议,容器开着时候执行拷贝,修改,再拷贝回去,restart。如下。

    3.png

    能够看到执行命令后有,successfully 的反馈。

    但是授权码没有更改。

    docker inspect fllsy_c
    

    看到的授权码也是以前的授权码。

    请帮忙看下,哪里出问题了?🙏

    1 回复
  • fradeet

    按你的情况还是搞个粗糙点的方法吧...在你原来有笔记的容器上

    docker cp fllsiyuan:/root/document/fllsynote/conf/conf.json ./conf.json
    

    拷贝出容器中的 JSON 文件,查找 accessAuthCode 并修改保存,拷贝回去,重启容器。

    docker cp ./conf.json fllsiyuan:/root/document/fllsynote/conf/conf.json
    
  • 查看全部回帖