docker-compose-hexo(用docker搭建hexo博客)

本文介绍 docker-compose-hexo,一个用 dockerdocker-compose 在 ubuntu 上搭建 hexo 博客的简单项目。如果你不了解 hexo,可先查阅 hexo官方文档。如果你平时也使用 docker 和 docker-compose,并且熟悉 linux 系统,那么 docker-compose-hexo 对你非常简单,否则学习 docker 和 docker-compose 可能要花费你一些时间。

安装前提

  • git
  • docker
  • docker-compose
  • ubuntu

安装hexo博客

如果满足安装前提,那么只需要3个简单的步骤就可以让hexo博客运行起来,然后正式开始编写博客文章。
安装过程需要下载软件包,花多少时间就看你的网络状况了。

1. 获取docker-compose-hexo项目

假设你把项目放到路径~/docker-compose-hexo

1
git clone https://github.com/2bright/docker-compose-hexo ~/docker-compose-hexo

2. 设置PATH环境变量

修改 ~/.bashrc 文件,添加 ~/docker-compose-hexo/scripts 到PATH变量。

1
echo 'export PATH=$PATH:~/docker-compose-hexo/scripts' >> ~/.bashrc

执行下面的命令让 PATH 变量生效。

1
source ~/.bashrc

3. 运行docker-compose-hexo

1
hexo-start

第一次运行会自动安装相关软件,需要等待较长时间,具体花多长时间依赖于你的网络状况。安装过程可能因为网络问题而失败,如果你不幸遇到,可以尝试重新安装。
可在 docker-compose-hexo 目录下用 docker-compose logs 查看日志,如果出现 Hexo is running at http://localhost:4000 则已安装并启动完成。

启动完成后,打开浏览器访问 http://your_server_ip:4000,验证是否安装成功。如果你在本地PC机上部署的hexo,那么 your_server_ip 替换成 localhost,如果使用云服务器,则换成服务器IP。

编写hexo博客文章

新建文章

下面新建一篇标题为 “用docker搭建hexo博客” 的文章。

1
hexo-new "用docker搭建hexo博客"

新建的文章放在 ~/docker-compose-hexo/blog/source/_posts 目录下。

编辑文章

用任何一款文本编辑器打开 ~/docker-compose-hexo/blog/source/_posts 目录下的文件进行查看和编辑。
hexo支持Markdown语法。

在浏览器上查看文章

访问 http://your_server_ip:4000 ,查看你的博客。
hexo服务器会监控 _posts 目录下的变动,你新建或修改了文章,刷新页面就可以看到变化。

配置博客

修改 ~/docker-compose-hexo/blog/_config.yml 文件,配置博客主题等信息。
如果文件所属用户是root,可执行 hexo-restart,所属用户将更新为当前用户。

1
2
3
4
5
6
7
8
title: 博客主题
subtitle: 博客副标题
description:
keywords:
author: 姓名
language: zh-CN
timezone: Asia/Shanghai
url: 博客地址

重启 docker-compose-hexo 让新配置生效。

1
hexo-restart

部署hexo博客到GitHub Pages

GitHub Pages可以帮你托管博客文章。hexo提供了简单的配置和命令,帮助你快速部署博客到GitHub Pages。

配置hexo支持GitHub Pages

配置hexo支持GitHub Pages需要6个简单的步骤。如果你已经有github账号并且熟悉github的使用,下面的步骤就更简单了。

1. github账号

要使用GitHub Pages发布博客,当然需要一个github账号。如果你还没有,就 去注册一个 吧。

2. GitHub Pages仓库

在github上创建一个仓库(repository),仓库必需命名为 “username.github.io”,username 替换成你的github用户名。

3. 配置hexo

修改 ~/docker-compose-hexo/blog/_config.yml 配置文件的 deploy 配置段如下,username 替换成你的github用户名。

1
2
3
deploy:
type: git
repo: git@github.com:username/username.github.io.git

4. 设置docker容器中的git用户邮箱和用户名

复制 ~/docker-compose-hexo/.env.example~/docker-compose-hexo/.env

1
2
cd ~/docker-compose-hexo
cp .env.example .env

修改 .env 文件。注意加引号。

1
2
GIT_USER_EMAIL="你的邮箱"
GIT_USER_NAME="你的姓名"

这两个变量用在docker容器中执行 git config --global user.email "$GIT_USER_EMAIL"git config --global user.name "$GIT_USER_NAME"

5. 生成docker容器中的ssh key

1
~/docker-compose-hexo/scripts/internal/generate_ssh_key

生成的 ssh key 保存在 ~/docker-compose-hexo/ssh 目录中,下一个步骤需要使用其中的 id_rsa.pub 文件。

6. 在github账号添加ssh key

复制刚创建的 id_rsa.pub 文件的内容,添加到你的github账号

一键部署博客到GitHub Pages

如果你执行完了上面的配置,需要部署博客到GitHub Pages时,执行下面的命令。

1
hexo-deploy

如果一切正常,你的博客会被上传到GitHub Pages仓库。访问你的GitHub Pages仓库,看是否有新的commit。用浏览器访问自己的GitHub Pages域名username.github.io,看是否更新。

总结

docker-compose-hexo是一个用docker部署hexo博客的项目,提供非常简单的使用接口。
本文介绍了 docker-compose-hexo 和 hexo 的简单使用,希望能帮助你快速上手使用 hexo 博客。