xachangwei 估计是官方文档的问题,备份数据的官方命令里面含了down命令,执行完这个容器就没了,然后再up起来的,是个新的容器,以下是官方文档里的命令cd ~/halo && docker-compose down,然后执行cp -r ~/halo ~/halo.archive。
Ryan Wang 👍 xachangwei down 了之后是会删掉容器啊,但是文档的 docker compose 文件有包含了数据目录映射,即便是删掉容器也不会主动清理数据目录,除非你进行修改,没有挂载目录。 这么多年了都没人说有这个问题,怎么到你就说文档有问题了 🙂
xachangwei Ryan Wang 👍 这样的,第一条命令之后容器就down掉了,然后是备份的命令,我刚好就是在备份这里出了问题,前面附件上传时候就报错说没有空间,备份失败也是没有空间。容器down掉之后,然后我重启nas了,启动起来之后,因为容器没有运行,我就又按照官方文档的up命令启动了(当时不知道down之后就没有了,而up是新建)这个时候我不确定有没有配置文件,但是后来想,既然目录都清空了,估计也就没有yaml配置文件了,只是估计哈。可能我的情况是个例吧,官方文档中的进入目录down容器和备份命令,都是为了升级做的准备,假如这时候有人备份失败,容器也down掉了,会不会up的时候也会碰到我的问题,当然也可能我的问题的根本是附件上传不了的那个原因,后来引起一系列的问题,别人可能不会遇到。我前面的表达有问题,我并不是要表示甩锅给官方文档的意思,本来也是免费使用的,还有很多免费产品连文档都没有呢,halo有文档已经很好了,感谢厂家的付出。
Ryan Wang 👍 xachangwei Halo 的 Docker Compose 文档中提供的 compose 文件示例都是带了以下配置的: volumes: - ./:/root/.halo2 这个配置就是将 Halo 容器中的数据目录(工作目录)映射到当前目录,也就是文档中提到的名为 halo 的目录,所以排除外界因素的影响,比如 Nas 的某种机制,几乎不可能在容器销毁之后映射的目录也没了。我认为你不需要关注容器是否被销毁(有映射数据目录的情况下,容器不重要,可以随时销毁重建)。建议进行以下排查: 根据文档重新部署一次,观察 halo 目录是否有数据产生,可能会包含这个文档中提到的目录或者文件:https://docs.halo.run/getting-started/prepare#%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95 测试上传,观察到底是什么问题导致无法上传,你可以提供日志。 测试 down 掉容器,观察 halo 目录的数据是否还存在(保证数据目录确实有被映射到 nas 的目录,而不是只存在于容器,如果都没有映射,那么销毁容器之后数据自然就没了)。 检查 Nas 的日志。
xachangwei halo这个目录是存在的,这个目录是根据官方文档用mkdir建立的,不是docker的命令建立的,不然我down掉之后重新up也不能起来,并且我也没有再次建立过这个目录,目录现在都有,只是第二次up之后,我登录8090,总是让我输入用户名,我输入用户名进去之后才看到配置被清空了,文章也没有了,配置也没有了。刚才去看你这个文档中的目录,现在都是有的,建立日期都是第二次up的时间。 我后面再继续上传附件,看看还会不会出问题了,假如有问题,我再看日志吧,谢谢!
xachangwei 这几天没使用halo,刚才内网登录,输完用户名密码,让我给站点起名字,就觉得不对,ssh登录nas,到halo目录下查看,果然没有yaml文件了,但是里面有子目录,log文件夹有两个文件,这怎么上传呢
leo xachangwei 不还是linux😅 "./" 表示当前工作目录(主机上的目录),而 "/root/.halo2" 则是容器内部的目录。所以,这个路径含义是将当前工作目录(主机)挂载到Docker容器内的 "/root/.halo2" 目录上。 既然要用docker-halo写博客,就先学学linux命令行与docker,把命令的意思先弄懂再操作,docker主打一个易迁移,怎么可能down一下把你宿主机文件给搞丢了呢