镜像包含什么
Dockerfile 先构建网页界面,再把静态资源嵌入 Rust 服务端二进制文件。运行镜像包含根证书、时区数据和入口脚本,不需要额外配置应用网页服务器。先按本地构建示例启动;失败时查看容器日志。
docker logs --tail 100 memos
docker inspect memos --format '{{.State.Status}}'
curl --fail http://127.0.0.1:5230/healthz把数据放在容器外
在 /var/opt/memos 挂载持久存储。入口脚本会准备目录属主,并降低服务进程权限。自定义绑定挂载应允许配置的运行用户写入,不要使用对所有人开放写权限的做法。修改 MEMOS_DATA 后也要调整挂载。容器入口脚本支持通过 MEMOS_DSN_FILE 读取文件中的数据库连接信息。
有计划地更新
每次构建都记录源码提交,并使用独立镜像标签。先备份数据库和附件,停止旧写入进程,再使用相同配置及数据卷启动新镜像。健康检查成功只说明启动正常,还应验证登录、笔记和附件。详见升级与回退。
检查运行身份与密钥挂载
打包入口默认 MEMOS_UID=10001、MEMOS_GID=10001,以 root 启动时先准备目录属主,再降低权限。若覆盖运行用户,应事先安排数据卷写权限及密钥文件读权限。MEMOS_DSN_FILE 出错可能是运行账号无法读取;同时设置 MEMOS_DSN 和 MEMOS_DSN_FILE 会被明确拒绝。排查时不要打印它们的内容。