一口气步子迈得有大,慢慢记录一下,如果你碰巧看到这个文章,希望这个文章的某些部分对你有帮助,来源我已尽量在文章中标出,还有很多部分是自己敲的
了解ECI弹性容器:https://www.aliyun.com/product/eci
了解阿里云NAS文件存储:https://www.aliyun.com/product/nas
为什么要用eci来运行hexo?
因为好玩,同时来学习从pull到发布到运行整个docker镜像的流程,也想给自己的hexo博客找个新家,酷酷的那种
本博客之前是由树莓派上的hexo生成,部署到github上的
最近在捣鼓docker,一时想不起来有什么灵活小巧的服务拿来用docker玩,那么想着干脆把树莓派上hexo这部分服务做成镜像,需要用的时候拿出来用用想必是极好的(这么一来好像树莓派又要吃灰了)
恰巧最近又在琢磨阿里云ECI容器服务,所以理论上是可以用我自己打包好的镜像的
最后成品的结构大致如下图:
这里挂了3个镜像:
1.node.js+git+ssh+hexo
主要是此镜像——由node.js+hexo组成的运行hexo环境,用过的都了解hexo是基于node.js的,每次我们生成文章的时候都会hexo g -d
,而运行这套需要一个环境容器
git和ssh主要是部署在github上用的,同时我习惯用VSCode的SSH FS来管理远程文件和写博客,主要是ssh连接,也方便我拿PuTTY和WinSCP远程登录管理
2.vsftpd
一个常用的ftp服务,我是在本地些完再上传的,用这个是因为我发现如果要给文章插入图片,我还需要手动用ssh上传到hexo对应目录里。而用VSCode的SSH FS可以帮我自动同步本地工作目录和云上即将生成静态网页的hexo目录,非常方便!
3.ddns
因为容器是即用即开,用完就释放的,每次开会新分配一个弹性IP做为外网接口,但是不想每次都去复制这个新的ip地址,那么就要用到动态域名解析,刚好我在阿里云上购买过一个我自己的域名,所以ddns这部分服务就拉出来做个镜像
还挂了一个NAS盘:
挂载以后:
可见我的hexo,主题,文章,图片等等都存放在里面,服务容器可以随便释放拉取,数据不会受到影响,几百M的NAS容量价格抹零后可以忽略不计
文章后面(第三部分)会说如何按我的需求构建定制这几个镜像,并上传到阿里云容器镜像ARK仓库以方便调用