hexo配置与自动化更新

hexo配置与自动化更新

hexo - docker

Docker安装

Github设置

  1. 由于ssh/password方式较为繁琐.以下采用Github: Personal access tokens拉取仓库.

    🐞:

    • Personal access tokens 只会首次出现,注意保存.
    • Personal access tokens 只需勾选repo权限.
  2. 仓库划分:

    • 文章仓库: posts
    • hexo仓库: hexo
      • 为了保证线上与mac上的环境一致,我将.gitignorenode_modules 移除.

Ubuntu

  1. 文件目录:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    .
    ├── hexo
    ├── Dockerfile
    ├── posts
    │   ├── .git
    │   ├── LICENSE
    │   └── xxxx.md
    ├── update.sh
    └── start.sh
  2. Dockerfile:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 基础镜像
    FROM node:latest
    # 作者
    MAINTAINER linhay
    # 安装hexo
    RUN npm install -g hexo-cli
    # 拉取 <---需要修改--->
    RUN git clone https://[tocken]@github.com/[you name]/[repo name].git
    # 切换目录
    WORKDIR Hexo
    # 添加权限与安装npm
    RUN chmod +x /Hexo/ && npm install
    # 挂载md目录
    VOLUME [ "/Hexo/source/_posts"]
    # 端口暴露 <---hexo默认4000端口--->
    EXPOSE 4000
    # 运行 hexo
    CMD ["hexo","server"]
  3. start.sh

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 构建image
    docker build -t hexo .
    # 启动容器
    docker run -d --name hexo -p 9000:9000 -v $PWD/posts:/Hexo/source/_posts hexo
    # -d 守护态运行
    # --name 容器别名
    # -p 端口映射,[宿主机端口:容器端口]
    # -v 文件挂载,[宿主机绝对路径:容器绝对路径]
    # hexo: 上面构建的image.
  4. update.sh

    1
    2
    3
    4
    5
    6
    7
    8
    # 切换目录
    cd ~/hexo/posts
    # 移除更改
    git checkout .
    # 拉取仓库更新
    git pull
    # 重新生成网站资源
    docker exec -it hexo hexo d -g

启动!

  1. 执行以下sh文件:

    1
    2
    3
    cd ~/hexo
    sh start.sh
    # 结束就可以访问对应网址了~
  2. 博客更新

    1
    2
    3
    cd ~/hexo
    sh update.sh
    # 结束就刷新网站资源了~
  3. 更新hexo仓库:

    1
    2
    3
    4
    5
    6
    #1
    docker exec -it hexo git pull
    #2 进入容器
    docker exec -it hexo /bin/bash
    git checkout .
    git pull