用 docker compose 重构我的个人网站

Posted on Sun 05 May 2024 in Journal

Abstract 用 docker compose 重构我的个人网站
Authors Walter Fan
 Category    learning note  
Status v1.0
Updated 2024-05-05
License CC-BY-NC-ND 4.0

腾讯云上租的云主机又到期了, 三年时间过得好快, 我的个人网站又要搬家了, 这次搬家的主要原因是继续续费的价格翻了将近10倍, 趁着阿里云有优惠活动, 我决定把我的个人网站搬到阿里云上, 其实三年前我是从阿里云搬过来的, 云主机厂商的玩法都一样, 新购主机很便宜, 续费就很贵, 赌的就是你怕麻烦, 迁移主机还要迁移数据. 可是他们不知道, 程序员就是爱折腾, 不怕麻烦, 当然手头拮据还是主因.

原本的方案

在一个内存和磁盘空间都比较紧张的云主机上搭建自己的个人网站需要精打细算, 我在腾讯云主机上安装了 LNMP 环境, 也就是 Linux + Nginx + MySQL + PHP, 主要用来伺服我的静态博客和记笔记用的 wordpress, 另外我比较喜欢用 Python, 所以还安装了一个我自己用 Python 写的 PIMS(Personal Infomation Manage System), 这样一来, 资源就相当紧张了.

所有的操作都是手工的, 手动安装了 LNMP, 以及 Wordpress 和我自己的 PIMS, 所以迁移网站还是挺麻烦的一件事, 每次都得折腾掉我一两天的空闲时间.

现在的方案

这次我决定把迁移的步骤自动化, 个人网站的数据放在 github 的私有仓库中做好版本控制, 使用 docker-compose 来部署网站, 这样一来, 迁移网站就变得很简单了.

  1. 在云主机上安装好 docker 和 docker-compose
  2. 从 github 上 clone 我的个人网站仓库
  3. 运行如下命令

    ```sh

    docker-compose up -d

    ``` 4. 访问 https://www.fanyamin.com 就可以看到我的个人网站了

大致就这四步, 还有就 wordpress 数据的迁移我用的是一款 wordpress 插件" UpdraftPlus", 非常好用. 而我自己的 PIMS 应用使用了 sqlite , 所以就干脆把 sqlite db 文件直接放到 github 的仓库里了, 这样备份和迁移都很方便.

就这么简单, 我的个人网站细节不便公布, 至于 docker-compose.yml, 我放了一份在 https://github.com/walterfan/devops-cookbook/tree/master/docker/lnmp中, 供有兴趣的朋友参考.


本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。