折腾史:

1. 使用 云服务器+ Docker + Halo:

  • 使用阿里云的 ECS(CentOS 7) 使用 Docker 部署了 Halo 博客,精心配置了 sakura 主题,也专心写了不少文章。

  • 最开始没有仔细阅读的官方文档,没留意关于数据备份的内容,为后来埋下了大祸 😭。

1. 尝试恢复 Halo 博客的内容:

  • 在阿里云服务器到期之前,就把镜像备份到了阿里云的镜像托管服务中,以为万事大吉,也没有做测试。

  • 当 ECS 到期之后,把镜像放到 MacBook M2 中,结果发现数据丢失,首先怀疑是底层架构不兼容,折腾着手动从镜像中把数据弄出来,但是由于 Halo 使用的是古老的 H2 数据库,好不容易找到文件存储位置,却提示表出现损坏,无法得到原来的数据。

  • 经过摸索,感觉有两种可能:

    • 文章数据在镜像中。但是定位数据并导出这一步没有成功。

    • 文章数据不在镜像里面,存储到 ECS 本地了。在迁移镜像时,没有跟随迁移机器上的数据,导致数据丢失所致。

教训:

  • 在运行容器之前,首先确定数据的同步方式,保存在容器内部,还是挂载本地。在迁移时这点尤为重要。

2. 自定义博客模板的尝试

  • 浏览器收藏夹有很久之前收藏的 Shiro 这个个人开发的博客模板,效果还算满意。架构是 MongoDB + Redis + 前端 + 后端。

  • 在拉取项目时,发现后端无法连接上 MongoDB 数据库,吸收上次的教训,这次很快便发现就是因为架构不匹配,镜像是 AMD64 架构,不适配 arm 64 架构,手动更换了数据库的架构镜像,解决。

  • 在设置 Docker 网络时,出现各容器无法交互,经 Debug ,发现是参数填写有误,由于对 Docker 的"网络"不熟悉,耽误了很久时间,最终搞定。

  • 一错止而新错起。又出现了新的错误:前端报错,猜测应该也是架构不匹配导致,累了,遂止。

3. 众里寻她千百度,蓦然回首,那人却在灯火阑珊处。

  • Docker 容器部署不仅需要镜像和电脑的架构吻合,希望任何人都能访问的话,还需要服务器。

  • 在很久之前 B 站推荐了一款写作软件 Thorn,再次打开小而美的 Thorn ,发现已经更新,不再是仅支持 CloudFlare 部署,而是像 Notion 那样,可以自行地发布笔记内容,大道至简,操作简单,美术风格也不错,丝滑部署,yyds!

  • 目前 Thorn 还处在开发和更新阶段,期待有更多的主题模板可用!期待越来越好!

4. 未完待续 …

  • Vercel 作为一个前端部署的利器,很适用于LandingPage 或者黄页,在 Gitee 上找到一个项目,考虑后续 DIY,使用 Vercel 部署。

继续阅读
All Articles
2024年11月12日
© 2025 Mooncyan