這篇文章寫如何借助daocloud免費發(fā)布hexo到github
前置閱讀:http://www.itdecent.cn/p/cb2ad128080d
需求
- blog源文件放在github
- git clone http://git.of.yousite
- 用Markdown寫文章
- git push
- 你的文章已經(jīng)更新到了github pages
原理
在daocloud上創(chuàng)建項目,生成鏡像,daocloud有持續(xù)集成功能,當寫完文章,push后,觸發(fā)daocloud自動構(gòu)建新的鏡像,接著會執(zhí)行你定義的動作,將文章發(fā)布到github page
引子
引子和實踐無關(guān),可以跳過
程序員都有記錄文檔的需要,想想鋪天蓋地的代碼片段,如果不及時整理記錄,等到用的時候,單靠Google,顯然不是高效的,于是有了印象筆記等在線的私人筆記本。
開放性的分享工具--blog出場了
- 空間
- 博客園
- WordPress
- hexo
但是用hexo寫完文章,需要手動編譯成HTML,然后發(fā)布到github
能不能用戶合適的工具,自動化持續(xù)集成呢,看到一篇文章:
http://notes.iissnan.com/2016/publishing-github-pages-with-travis-ci/
這里用到了Travis,好像被墻,反正我一直打不開, 后來用Jenkins,但是發(fā)現(xiàn)安裝Jenkins需要性能比較好的服務(wù)器,配置也挺麻煩,折騰了一陣子,放棄了,后來打算用docker來打包環(huán)境,嘗試了免費的daocloud,時速云,希云等工具,最后daocloud走通了
步驟
先簡單寫
- 首先搭建hexo,發(fā)布到github, 參考http://www.itdecent.cn/p/cb2ad128080d
- 注冊daocloud賬號,用DockerFile創(chuàng)建鏡像,部署鏡像
- 那么我的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授權(quán),我沒有采用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
這樣就不用配置權(quán)限了
- 用daocloud生成鏡像
- 部署你生成的鏡像
- 開啟自動更新,持續(xù)集成
- 在本地向你的代碼庫push代碼daocloud就會自動更新鏡像,自動發(fā)布到github page
最后
本文先只寫了一個思路,我按照這個思路走通了,需要一些docker方面的基礎(chǔ),如果有什么問題,歡迎留言