使用阿里云的 ECS(CentOS 7) 使用 Docker 部署了 Halo 博客,精心配置了 sakura 主题,也专心写了不少文章。
最开始没有仔细阅读的官方文档,没留意关于数据备份的内容,为后来埋下了大祸 😭。
在阿里云服务器到期之前,就把镜像备份到了阿里云的镜像托管服务中,以为万事大吉,也没有做测试。
当 ECS 到期之后,把镜像放到 MacBook M2 中,结果发现数据丢失,首先怀疑是底层架构不兼容,折腾着手动从镜像中把数据弄出来,但是由于 Halo 使用的是古老的 H2 数据库,好不容易找到文件存储位置,却提示表出现损坏,无法得到原来的数据。
经过摸索,感觉有两种可能:
文章数据在镜像中。但是定位数据并导出这一步没有成功。
文章数据不在镜像里面,存储到 ECS 本地了。在迁移镜像时,没有跟随迁移机器上的数据,导致数据丢失所致。
教训:
在运行容器之前,首先确定数据的同步方式,保存在容器内部,还是挂载本地。在迁移时这点尤为重要。
浏览器收藏夹有很久之前收藏的 Shiro 这个个人开发的博客模板,效果还算满意。架构是 MongoDB + Redis + 前端 + 后端。
在拉取项目时,发现后端无法连接上 MongoDB 数据库,吸收上次的教训,这次很快便发现就是因为架构不匹配,镜像是 AMD64 架构,不适配 arm 64 架构,手动更换了数据库的架构镜像,解决。
在设置 Docker 网络时,出现各容器无法交互,经 Debug ,发现是参数填写有误,由于对 Docker 的"网络"不熟悉,耽误了很久时间,最终搞定。
一错止而新错起。又出现了新的错误:前端报错,猜测应该也是架构不匹配导致,累了,遂止。
Docker 容器部署不仅需要镜像和电脑的架构吻合,希望任何人都能访问的话,还需要服务器。
在很久之前 B 站推荐了一款写作软件 Thorn,再次打开小而美的 Thorn ,发现已经更新,不再是仅支持 CloudFlare 部署,而是像 Notion 那样,可以自行地发布笔记内容,大道至简,操作简单,美术风格也不错,丝滑部署,yyds!
目前 Thorn 还处在开发和更新阶段,期待有更多的主题模板可用!期待越来越好!
Vercel 作为一个前端部署的利器,很适用于LandingPage 或者黄页,在 Gitee 上找到一个项目,考虑后续 DIY,使用 Vercel 部署。