← 返回 TimeAmber

群晖 Docker 部署 思源笔记

本贴最后更新于 564 天前,其中的信息可能已经事过境迁

群晖 Docker 部署 思源笔记

官方 docker 镜像参考文档: https://registry.hub.docker.com/r/b3log/siyuan 参数配置参考 https://ld246.com/article/1630063506550 设置中文参考: https://ld246.com/article/1632652377565

个人机器:群晖 920 DSM 7.x

全程使用 ssh 进行部署,对个人来说比较方便,因此基于此部署:

# 使用容器卷的方式 # 创建容器卷:siyuan docker volume create siyuan # 查看容器卷信息, 可以查询到容器卷的位置,目的是设置文件夹权限,不然直接运行容器会报权限错误 docker volume inspect siyuan # 找到文件对应路径,根据官方文档说明,修改文件夹权限 chown -R 1000:1000 /volume2/@docker/volumes/siyuan # 创建容器命令说明,主要参考官方仓库下方说明 docker run \ -v siyuan:/siyuan/workspace \ # 上方创建的容器卷:映射容器内思源笔记的数据存放路径,与workspace保持一致 -p 6806:6806 \ # 群晖对外访问的端口(可以自定义):思源笔记容器内起的端口 -u 1000:1000 \ # 官方文档中,使用普通用户创建 -e LANG=zh_CN.UTF-8 \ # 参考链接中,设置默认为中文(主要是为了说明文档,还是中文方便一点) -e LC_ALL=zh_CN.UTF-8 \ --restart=always \ # 容器自动重启 -d --name="siyuanNote" \ # -d:容器后台启动,--name 设置容器名称 b3log/siyuan \ # 使用的镜像源名称 --workspace=/siyuan/workspace/ # 官方设置的容器内的数据存放路径,要与上方保持一致 # 创建容器 Demodocker run -v siyuan:/siyuan/workspace \ -p 6806:6806 \ -u 1000:1000 \ -e LANG=zh_CN.UTF-8 \ -e LC_ALL=zh_CN.UTF-8 \ --restart=always \ -d --name="siyuanNote" \ b3log/siyuan \ --workspace=/siyuan/workspace/

查看容器中的日志:

命令格式:docker logs -f --tail 100 [容器名称],Demo docker logs -f --tail 100 siyuanNote

未设置文件夹权限时,运行提示的错误:

image.png

733 x 121 1824 x 300

安装成功后,群晖 docker 中显示的日志:

image.png

733 x 510 2231 x 1553

image.png

733 x 544 2342 x 1738

请输入回帖内容...
  • weng8858

    思源的的权鉴要放到启动参数里(command),不是放在变量里的(environment)

  • lxwy-per

    点赞

  • xt12321 1
    作者

    参考 github 上的一个 issue 以及代码,修改为下面这样配置 docker-compose.yml 文件可以 (本地 ubuntu 上 docker-compose 成功运行):

    version: '3' services: siyuan: image: b3log/siyuan container_name: siyuanNote restart: always ports: - 6806:6806 command: [--accessAuthCode=123456,--lang=zh_CN] volumes: - siyuan:/siyuan/workspace user: 1000:1000 volumes: siyuan:

    项目代码中,参数配置在 kernel/util/working.go 文件,第 62 - 69 行, 代码如下:

    workspacePath := flag.String("workspace", "", "dir path of the workspace, default to ~/Documents/SiYuan/") wdPath := flag.String("wd", WorkingDir, "working directory of SiYuan") port := flag.String("port", "0", "port of the HTTP server") readOnly := flag.String("readonly", "false", "read-only mode") accessAuthCode := flag.String("accessAuthCode", "", "access auth code") ssl := flag.Bool("ssl", false, "for https and wss") lang := flag.String("lang", "", "zh_CN/zh_CHT/en_US/fr_FR/es_ES") mode := flag.String("mode", "prod", "dev/prod")

    image.png

    655 x 316 1901 x 918

  • 哦,确实没有成功。

    我查了下鉴权是 accessAuthCode。但我改过来也还是不行。让 AI 想了半天也没想出来怎么办。

    2 回复
  • xt12321
    作者

    昨天部署的时候,没有注意授权码的问题。不过,刚 windows 上试了一下 docker-compose 部署,但是访问网页,并没有让输入授权码,不知道你那边部署完之后是否成功了?

    1 回复
  • 根据 LZ 的内容,咨询了下 AI,制作了 Docker Compose 文件

    version: '3' services: siyuan: image: b3log/siyuan container_name: siyuanNote restart: always ports: - 6806:6806 environment: LANG: zh_CN.UTF-8 LC_ALL: zh_CN.UTF-8 ACCESS_AUTH_CODE: 这里是打开网页时所需的密码 volumes: - siyuan:/siyuan/workspace user: 1000:1000 volumes: siyuan:

    我个人只会用 Portainer 部署:

    image.png

    655 x 286 1856 x 809

    1 回复
请输入回帖内容...

相关帖子