接近于完美版的 docker-hexo 实现~

2016-05-26 08:55:49 +08:00
 iyannik0215

Github 地址: https://github.com/iyannik0215/docker-hexo

DockerHub 地址: https://hub.docker.com/r/iyannik0215/docker-hexo/

起因

换了电脑后想要继续写博客, 就必须去装 hexonodejs + git, 但是毕竟不是玩 nodejs 的人, 每次装都会出点错误什么的, 最牛逼的一次是直接 rm -rf /usr/local/bin 里的所有东西删没了, 于是就想到了 docker 去做个镜像来完成 hexoserver 预览 和 deploy 部署 github 的任务.

作为一个程序狗, 电脑里可以没有 nodejs, 但是不能没有 Docker, →_→#.

下药

如果使用了 docker-hexo 那么你电脑里就再也不需要安装你不需要的 nodejs 了, 只需要保存 hexo 一下三样东西, 就可以实现 各种平台的无缝迁移~~.

使用方法

拉取镜像, 当前只有一个版本为 Hexo3.2 版本

docker pull iyannik0215/docker-hexo

使用 run 命令创建容器

docker run -p 80:80 -d iyannik0215/docker-hexo {你的 github username} {你的 github email} server
 
eg: docker run -p 80:80 -d iyannik0215/docker-hexo iyannik0215 admin@mashiro.io server

docker run -p 4000:80 --name hexo-server -d \

-v {你的用户文件夹路径}/.ssh:/root/.ssh \
-v {你的博客文件夹路径}/source:/Hexo/source \
-v {你的博客文件夹路径}/themes:/Hexo/themes \
-v {你的博客文件夹路径}/scaffolds:/Hexo/scaffolds \
-v {你的博客文件夹路径}/_config.yml:/Hexo/_config.yml \

iyannik0215/docker-hexo {你的 github username} {你的 github email} server

真实效果:

docker run --name hexo-deploy -d \

-v {你的用户文件夹路径}/.ssh:/root/.ssh \
-v {你的博客文件夹路径}/source:/Hexo/source \
-v {你的博客文件夹路径}/themes:/Hexo/themes \
-v {你的博客文件夹路径}/_config.yml:/Hexo/_config.yml \

iyannik0215/docker-hexo {你的 github username} {你的 github email} deploy

真实效果:

后续的使用

如果需要创建文章就手动创建到 source/_posts 目录下, 使用 docker start hexo-server, 就可以在 浏览器中实时预览了.

如果需要部署 blog, 就可以直接使用 docker start hexo-deploy, 容器会后台部署, 完毕后自动退出的.

15134 次点击
所在节点    Hexo
48 条回复
Maic
2016-05-26 09:03:17 +08:00
不懂 docker ,只能给个 666
timothyye
2016-05-26 09:05:18 +08:00
那个带 GUI 界面的是个啥工具?
DearMark
2016-05-26 09:08:18 +08:00
换了电脑后想要继续写博客, 就必须去装 docker-hexo, 但是毕竟不是玩 docker 的人, 每次装都会出点错误什么的, 最牛逼的一次是直接 rm -rf /usr/local/bin 里的所有东西删没了, 于是就想到了 nodejs + git 去完成 hexo 的 server 预览 和 deploy 部署 github 的任务.

(哈哈哈)
dphdjy
2016-05-26 09:11:07 +08:00
其实。。。可以找个支持自动构建的 docker 服务, push 后自动构建发布~连 docker 都省了~
adeweb
2016-05-26 09:11:51 +08:00
@timothyye kitematic , docker 的一个图形化管理工具。
niko
2016-05-26 09:12:21 +08:00
感觉还是挺折腾的。现在用 travis-ci ,可以只专注 写文章,无需关注部署问题了。
iyannik0215
2016-05-26 09:23:51 +08:00
@dphdjy 好像见过有人在 hub.docker 上这么玩, 但是写文章好像需要进入 docker 里, 这点我就不爽了.. 人家靠 hub.docker pull 了 1000+次了....


@niko 有教程么→_→#, 我也去看看..

@Maic 想玩的时候可以来一发.

@DearMark 发现写错好多东西→_→#,
loading
2016-05-26 09:36:24 +08:00
上次没询问就清空了我的 repo ,这次呢?
isb
2016-05-26 09:36:58 +08:00
楼主用的什么发行版?主题感觉好赞。。
timothyye
2016-05-26 09:38:09 +08:00
@niko 用持续集成工具来生成静态 blog ?真是脑洞大开……
mudkip
2016-05-26 09:41:10 +08:00
@dphdjy
我最近写了一个自动 push 到 github 的 github webhook (我是用同一个仓库的两个分支作为 hexo 源文件和 github pages ),用 docker 跑在自己 vps 上。
https://github.com/mudkipme/mudkipme.github.io/blob/hexo/server.js
https://github.com/mudkipme/mudkipme.github.io/blob/hexo/Dockerfile
iyannik0215
2016-05-26 09:43:32 +08:00
@loading 啊?完全沒聽懂你說的什麼……,我清空什麼了……
@isb mac ……
@timothyye 是呀,方便程度的話還算可以……
janrone
2016-05-26 09:48:01 +08:00
zvving
2016-05-26 09:56:50 +08:00
@timothyye

@niko 说得对呀, 我们一直都是这么用的.

参见这里: https://travis-ci.org/51offer/51offer.github.com https://github.com/51offer/51offer.github.com/blob/blog/.travis.yml

webhook docker 都省了……
loading
2016-05-26 10:00:30 +08:00
@iyannik0215 上次我用了一下一个类似的。

默认会删除 usernane.GitHub.io
iyannik0215
2016-05-26 10:07:38 +08:00
@loading 我寫的這個應該會清除所有的 commit 提交,畢竟你原來的.gitdeploy 那個目錄不存在了,但是不會刪除 repo
loading
2016-05-26 10:22:05 +08:00
@iyannik0215 这是不是应该在说明里讲一下?
loading
2016-05-26 10:23:47 +08:00
@iyannik0215 应该先判断,再 clone ,再…
dphdjy
2016-05-26 10:28:51 +08:00
@iyannik0215
@timothyye
@mudkip
用 travis-ci 这类持续集成写其实很不错哒~
但是因为环境需求高,不如自己写个 dockerfile ,然后一般 docker 都有持续集成和自动构建



只要 push 文章,服务商会自己构建镜像,然后最后一条命令传到 GitHub 的 page 分支就好了~
kenshinhu
2016-05-26 10:34:41 +08:00
docker 好像蛮好玩似的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/281309

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX