Hexo博客具有以下优点:
1.快速: Hexo基于Node.js开发,采用静态页面生成的方式,具有快速的渲染速度,可以快速加载和显示页面内容。
2.简洁: Hexo的设计理念是简洁高效,提供了简单易用的命令行工具,帮助用户快速创建和管理博客内容。
3.灵活: Hexo提供了丰富的主题和插件,可以自定义博客的外观和功能,满足个性化的需求。
4.易于部署: Hexo生成的内容是静态文件,可以轻松部署到各种静态网站托管服务或者自己的服务器上。
5.支持多平台: Hexo可以在Windows、Mac和Linux等操作系统上运行,具有良好的跨平台兼容性。
总之,Hexo是一款简洁、快速、灵活且易于部署的博客框架,适合个人博客、技术博客等各种类型的网站搭建。
Hexo 官网 Github
1. Dockerfile 构建 HEXO 镜像
使用Dockerfile构建HEXO镜像具有以下优点:
1.可重复性: Dockerfile是一种文本文件,它包含了用于构建Docker镜像的所有指令和配置。使用Dockerfile构建HEXO镜像可以确保每次构建的镜像都是一致的,从而实现可重复性。
2.便捷性: 使用Dockerfile构建HEXO镜像可以将HEXO的安装和配置过程自动化,简化了手动安装和配置的步骤,提高了部署的效率。
3.灵活性: Dockerfile中的指令和配置可以自定义,根据需求进行修改和调整。可以自由选择需要的组件和插件,并进行相应的配置,以满足个性化的需求。
4.可移植性: 使用Dockerfile构建的HEXO镜像可以在不同的环境中运行,只需要安装Docker并加载镜像即可,无需担心依赖和环境的问题。
5.版本控制: 使用Dockerfile构建HEXO镜像可以将其纳入版本控制系统中,方便管理和跟踪镜像的修改和更新。
总之,使用Dockerfile构建HEXO镜像具有可重复性、便捷性、灵活性、可移植性和版本控制等优点,可以简化HEXO的安装和配置过程,并方便部署和管理。
1.1 创建并进入 HEXO 目录
1
| sudo mkdir hexo && cd hexo
|
1.2 创建 Dockerfile 文件
Dockerfile 配置文件 ↓
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| FROM node
MAINTAINER MQDS <[email protected]>
ENV HEXO_SERVER_PORT=4000
RUN \ apt-get update && \ apt-get install git -y && \ apt install nano -y && \ npm install -g hexo-cli
WORKDIR /app
EXPOSE ${HEXO_SERVER_PORT}
CMD \ if [ "$(ls -A /app)" ]; then \ echo "***** App directory exists and has content, continuing *****"; \ else \ echo "***** App directory is empty, initialising with hexo and hexo-admin *****" && \ hexo init && \ npm install && \ npm install --save hexo-renderer-pug && \ npm install --save hexo-renderer-stylus && \ npm install --save hexo-wordcount && \ npm install --save hexo-generator-searchdb && \ npm install --save hexo-generator-sitemap && \ npm install --save hexo-generator-index-pin-top && \ npm install --save hexo-generator-feed && \ npm install --save hexo-abbrlink && \ npm install --save hexo-blog-encrypt && \ npm install --save hexo-filter-nofollow; \ fi; \ echo "***** Starting server on port ${HEXO_SERVER_PORT} *****" && \ hexo server -d -p ${HEXO_SERVER_PORT}
|
1.3 构建名称为 my_hexo 镜像
1
| sudo docker build -t my_hexo .
|
如有错误,可以清理镜像
1
| >sudo docker image prune -a && sudo docker builder prune -a
|
2. 创建 Docker-Compose 配置文件
1
| sudo nano docker-compose.yml
|
Docker-Compose 配置文件 ↓
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| version: '3.8' services: hexo: container_name: my_hexo environment: - HEXO_SERVER_PORT=4000 - TZ=Asia/Shanghai volumes: - './data:/app' ports: - '4000:4000' image: my_hexo restart: always
|
3. 运行 my_hexo 容器
1
| sudo docker-compose up -d
|
4. 查看镜像启动日志
1
| sudo docker logs --follow my_hexo
|
5. 生成默认页面
1
| sudo docker exec -it my_hexo hexo cl && sudo docker exec -it my_hexo hexo g
|
6. 通过 IP 访问 HEXO 默认页面
6.1 打开防火墙端口
1 2 3 4 5
|
sudo ufw allow from 172.8.8.2 to any port 4000 proto tcp comment 'hexo'
|
6.2 公网访问
http://ip:4000