使用daocloud持续集成发布hexo

字数 624阅读 1524

这篇文章写如何借助daocloud免费发布hexo到github
前置阅读:http://www.jianshu.com/p/cb2ad128080d

需求

  1. blog源文件放在github
  2. git clone http://git.of.yousite
  3. 用Markdown写文章
  4. git push
  5. 你的文章已经更新到了github pages

原理

在daocloud上创建项目,生成镜像,daocloud有持续集成功能,当写完文章,push后,触发daocloud自动构建新的镜像,接着会执行你定义的动作,将文章发布到github page

引子

引子和实践无关,可以跳过
程序员都有记录文档的需要,想想铺天盖地的代码片段,如果不及时整理记录,等到用的时候,单靠Google,显然不是高效的,于是有了印象笔记等在线的私人笔记本。
开放性的分享工具--blog出场了

  • 空间
  • 博客园
  • WordPress
  • hexo

但是用hexo写完文章,需要手动编译成HTML,然后发布到github
能不能用户合适的工具,自动化持续集成呢,看到一篇文章:
http://notes.iissnan.com/2016/publishing-github-pages-with-travis-ci/
这里用到了Travis,好像被墙,反正我一直打不开, 后来用Jenkins,但是发现安装Jenkins需要性能比较好的服务器,配置也挺麻烦,折腾了一阵子,放弃了,后来打算用docker来打包环境,尝试了免费的daocloud,时速云,希云等工具,最后daocloud走通了

步骤

先简单写

  1. 首先搭建hexo,发布到github, 参考http://www.jianshu.com/p/cb2ad128080d
  2. 注册daocloud账号,用DockerFile创建镜像,部署镜像
  3. 那么我的Dockerfile
# Dockerfile for building CentOS images
FROM       centos:centos6.7
ENV TZ "Asia/Shanghai"
ENV TERM xterm
Run yum clean all && yum makecache
Run yum install -y pwgen openssh-server git  supervisor python-pip
RUN yum install -y wget curl tar bzip2  vim-enhanced sudo yum-utils 
Run yum install -y npm git
Run git clone https://{{you.git.site}} /hexow
Run cd /hexow && git pull
Run npm install hexo-cli -g
Run cd /hexow && npm install
EXPOSE 4000
EXPOSE 22
ENTRYPOINT cd /hexow &&git fetch --all &&git reset --hard origin/master &&hexo clean &&hexo g &&hexo d&& hexo s

注意替换you.git.site为你自己的git地址

  • 这里需要注意,如果是私人库,需要git授权,我没有采用ssh的方式,我用了如下的方法:
    如果你的git用户名密码分别是
username=zhangsan
password=1234
git:https://coding.net/u/awanke/p/hexow/git

可以写成:

https://zhangsan:1234@coding.net/u/awanke/p/hexow/git

这样就不用配置权限了

  1. 用daocloud生成镜像
  2. 部署你生成的镜像
  3. 开启自动更新,持续集成
  4. 在本地向你的代码库push代码daocloud就会自动更新镜像,自动发布到github page

最后

本文先只写了一个思路,我按照这个思路走通了,需要一些docker方面的基础,如果有什么问题,欢迎留言

推荐阅读更多精彩内容