前面的话
前面几篇博客陆续记录了我使用coding仓库备份博客网站源码,以及构建了hexo的docker镜像,也提到了使用daocloud进行自动化构建hexo博客的功能。这篇博文就是记录使用daocloud持续化构建hexo博客的折腾。前面的折腾如下:
daocloud
其实我是很喜欢简单粗暴的,直接,爽快,干净,利落。我可以直接记录我搭建的过程,中间可以略去对daocloud的介绍,对碰到的问题的介绍,但是,博客的目的不只是记录啊,更多的还是分享自己碰到的问题,或者自己的理解。所以,对于daocloud的介绍还是打算来一下下。
什么是daocloud?
官网: www.daocloud.io
什么是daocloud?daocloud有什么用?正如官网的主页介绍的:
重新定义计算的边界
业界领先的企业级容器云及解决方案
直观的理解就是一个docker容器,只不过被搬到了云上。那么使用daocloud后我发布博客会有什么区别呢?
原来的方式是写好博客后执行hexo clean &&hexo d -g一系列的操作手工发布博客,而且必须是在安装好了hexo的环境上执行;那么使用daocloud之后呢?现在我只需要编写好博客,不用限制在hexo的环境中,在任何环境下,只要有博客源码存在,然后git push到博客源码的仓库,就会触发daocloud的自动集成,博客就发布好了。是不是方便了很多呢?O(∩_∩)O。
daocloud与docker
既然理解了daocloud其实就是一个云容器(当然可能还有其他的部分),那么与docker就脱不了干系。那么构建的过程原理是如何的呢?
daocloud使用daocloud.yml文件脚本进行持续构建,daocloud.yml是一系列的命令的集合,自动集成前需要一个docker镜像,这个docker镜像可以是公有的docker镜像,也可以是自己构建的镜像。然后daocloud执行daocloud.yml中一系列的命令就是基于这个镜像,直至最后的博客自动发布。那么如果是自己构建的镜像,如之前的文章使用docker制作hexo镜像中讲的一样,需要自己编写Dockerfile,然后构建镜像。
下面是详细的步骤。
使用daocloud详细步骤
编写Dockerfile
在博客根目录新建Dockerfile,内容如下:
1 | FROM node:slim |
Dockerfile用来构建hexo环境,可以缩短每次自动集成的时间。
编写daocloud.yml
在博客根目录新建daocloud.yml,内容如下:
1 | version: 2.0 |
daocloud.yml中拉取镜像 daocloud.io/rebootcaty/hexo:latest,这个到时候可以改成你自己的镜像。这一步不明白没关系,可以先暂时放一放,不影响。
新建.daocloud文件夹
在博客根目录新建.daocloud文件夹:
1 | $ mkdir .daocloud |
然后把之前生成的ssh key(一般在~/.ssh/下)复制一份到这个文件夹下:
1 | $ cp ~/.ssh/id_rsa* .daocloud/ |
接着在.daocloud文件夹下新建文件ssh_config:
1 | $ touch ssh_config |
然后写入内容:
1 | StrictHostKeyChecking no |
到此,准备工作还有最后一步,就是提交到博客源码仓库:
1 | $ git add . |
接下来才是真正的开始!
daocloud.io上注册用户新建项目
去daocloud官网www.daocloud.io注册账号
点击项目,新建新项目,填入名称,绑定你的博客源码仓库(比如我的是coding的私有仓库),选择持续集成:
然后点击开始创建,然后到”构建设置”里边:
然后是”触发规则”里边:
可以注意到上面选择了成功构建后设置latest为镜像标签,这就是daocloud.yml中拉取的镜像。
然后到”流程定义”里:
点击保存后点击右上角的手动构建。然后你就会看到一个终端窗口打开了,开始记录构建日志了,嘻嘻。
静静等待完成~
如果成功构建,完成后是这样的:
至此,当每次写完博客,只需要执行下面这几条命令就不用管了,daocloud会自动构建发布。
1 | git add . |
END
关于daocloud,不要觉得太欣喜,毕竟“免费的是最贵的”,写这篇博文的时候我是重新又创建了一个项目,重新操作了一遍,但是在它自动构建的时候,执行了很长时间,上面的最后这两张图是我之前的项目的构建结果(我实在等不了刚刚新创建的这个项目的构建了,好慢好慢)。不过你也可以付费购买更好的服务。
到目前为止,博客的环境迁移,自动发布折腾的差不多了,以后就是坚持写博客,记录知识,分享知识。好吧,坚持不容易,加油!
Blog:
2016-12-21 于杭州
By 史矛革