作者: 耗子007
通过把hexo安装到docker容器中,然后在容器中启动hexo的服务。
构建hexo的docker镜像
基于node的docker镜像制作我们的hexo镜像,主要做了如下几件事:
- 配置代理(内网需要)
- 添加hexo工作目录
- 安装全局hexo
- 初始化hexo工作目录
- 暴露hexo服务的端口
- 在启动时,生成静态页面以及启动hexo服务
Dockerfile如下所示:
FROM node
MAINTAINER Haozi007
ENV http_proxy http://name:password@proxy:8080
ENV https_proxy http://name:password@proxy:8080
# Create hexo work dir
WORKDIR /blog
RUN npm install -g hexo-cli
RUN hexo init /blog
EXPOSE 4000
CMD hexo generate && hexo server
制作docker镜像
docker build -t haozi/hexo .
启动hexo服务
可以通过docker的-v方法,把我们的markdown文档指定到容器中hexo的工作目录的source/_posts目录中,
这样当容器启动时,会自动生成对应的静态页面。
启动容器的命令如下:
docker run --name hexo -itd -p 8088:4000 \
-v /home/rtos/learning/workNotes/blogs:/blog/source/_posts \
haozi/hexo
注:
- -p把容器的4000端口映射到host的8088端口,这样访问host的8088端口,就可以访问我们的hexo网站了。
- -v把markdown写的文档,映射到hexo的工作目录下的_posts目录,这样我们可以方便的更新文档
网站维护
可以把我们的所有markdown文档传到github或者其它内源保存。
每次更新文档的时候,有两种方法可以更新我们的hexo静态网站。
- 只需要重启我们的hexo容器
- 执行docker exec -it hexo /bin/bash进入容器,然后到/blog目录,执行hexo generate就可以了
前者需要重启容器,导致网站服务中断,后者比较麻烦,但是网站服务不好中断。