我在我的家庭服务器上运行以下 docker 镜像(以及其他镜像):ghcr.io/linuxserver/bookstack
一切都运行顺利,但我意识到一些相当奇怪的事情。
我使用 restic 备份我的 Docker 容器的数据。为了避免某些容器的数据库内容不一致,我停止了所有内容,运行备份命令,然后重新启动所有容器。
问题是,Bookstack 容器管理的卷中存储的文件的 ctime 属性在容器启动时会立即更改,我不知道具体原因,因为文件内容没有被修改,stat 命令也没有显示除 ctime 之外的任何其他属性更改。这会使备份速度慢得多(如果我使用 restic 的 --ignore-ctime 标志,则备份时间会超过 30 分钟,而 40 秒则需要 40 分钟)。
我运行的其他容器不会这样做。
我的问题是:为什么会发生这种情况?或者:如何找出文件中正在更新的属性,从而更新 ctime?
正如我所说的,我可以使用 --ignore-ctime restic 标志解决问题,但我想知道该图像发生了什么。
欢迎提供任何线索。
在此先感谢您的帮助。
答案1
这更像是镜像创建者的问题,而不是 docker 或 restic 的问题。我看到更改时间戳的一个常见原因是递归chown
。看起来该镜像在各种脚本中都有几个,包括配置文件夹中的这个:
# set permissions
chown -R abc:abc \
/config