以Docker方式使用Hexo

为避免不同操作系统,不同环境的影响,避免在机器上安装不同的nodejs版本,不同的依赖。
把hexo当独立的部署抽取出来,采取在docker中搭建hexo环境。

Dockerfile

1
2
3
4
5
6
7
8
9
FROM node:alpine
MAINTAINER fengcl <finghine.feng@gmail.com>
RUN apk update && apk upgrade && \
apk add --no-cache git
WORKDIR /workdir
VOLUME ["/workdir"]
RUN npm install hexo-cli -g
EXPOSE 4000
CMD []

使用方法

构建镜像

在目录中创建Dockerfile,内容如上

1
docker build . -t ff/hexo

初始化目录

1
docker run -it --rm -v /home/ff/hexo:/workdir ff/hexo sh -c "hexo init blog"
  • -t 开一个终端
  • -i 标准输入打开
  • --rm 运行完就删除
  • -v 映射目录

安装依赖

1
docker run -it --rm -v /home/ff/hexo:/workdir ff/hexo sh -c "cd blog; npm install"

新建博文

1
docker run -it --rm -v /home/ff/hexo:/workdir ff/hexo sh -c "cd blog; hexo new test"

预览

1
docker run -it --rm -p 80:4000 -v /home/ff/hexo:/workdir ff/hexo sh -c "cd blog; hexo serve"

生成html

1
docker run -it --rm -v /home/ff/hexo:/workdir ff/hexo sh -c "cd blog; hexo g"

切换主题

这里在本地文件目录中修改就可以了

1
2
3
4
5
cd /home/ff/hexo/blog
# 下载next 主题
git clone https://github.com/iissnan/hexo-theme-next themes/next
# 替换主题
sed '/theme: landscape/ ctheme: next' -i _config.yml

再运行预览命令

1
docker run -it --rm -p 80:4000 -v /home/ff/hexo:/workdir ff/hexo sh -c "cd blog; hexo server"

git 仓库

https://github.com/finghine/hexo-docker