这篇文章写如何借助daocloud免费发布hexo到github
前置阅读:http://www.jianshu.com/p/cb2ad128080d
需求
- blog源文件放在github
- git clone http://git.of.yousite
- 用Markdown写文章
- git push
- 你的文章已经更新到了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走通了
步骤
先简单写
- 首先搭建hexo,发布到github, 参考http://www.jianshu.com/p/cb2ad128080d
- 注册daocloud账号,用DockerFile创建镜像,部署镜像
- 那么我的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
这样就不用配置权限了
- 用daocloud生成镜像
- 部署你生成的镜像
- 开启自动更新,持续集成
- 在本地向你的代码库push代码daocloud就会自动更新镜像,自动发布到github page
最后
本文先只写了一个思路,我按照这个思路走通了,需要一些docker方面的基础,如果有什么问题,欢迎留言
网友评论