aws上部署hexo步骤记录

安装步骤

1
2
3
4
5
sudo apt-get update
sudo apt install docker.io -y
docker pull ditw/hexo:v1.0
docker create --name=blog -p 4000:4000 ditw/hexo:v1.0
docker start blog

进入docker,并更新到最新的source文件

1
2
3
docker exec -it blog /bin/bash
root@714030e2c58d:/app# cd /git/hexo_blog/
root@714030e2c58d:/git/hexo_blog# git pull

备注

备注1:

如果是初始化配置hexo docker,创建时候,需携带github信息,命令如下:

1
2
3
4
5
6
docker create —name=blog \
-e HEXO_SERVER_PORT=4000 \
-e GIT_USER=“Martin Zhang" \
-e GIT_EMAIL=“martinbj2008@gmail.com" \
-p 4000:4000 \
spurin/hexo

备注2:npm install hexo-deployer-git —save

hexo deploy 失败,提示git命令没有找到。

1
2
3
4
 root@00a863725a6b:/app# hexo deploy
INFO Validating config
ERROR Deployer not found: git
root@00a863725a6b:/app# npm install hexo-deployer-git —save

备注3:

hexo命令要在hexo的根目录(root@27016986ff3a:/app#)下执行, 否则会提示Error: Cannot find module './db.json’错误

1
2
3
4
5
root@27016986ff3a:/app/source# hexo gen
INFO Validating config
ERROR Plugin load failed: hexo-server
Error: Cannot find module './db.json'
Require stack:

备注4:

aws的虚拟机需要在安全规则里放通tcp的4000端口

备注5:如何将docker image推送到到docker hub上

  1. docker ps, 可以看到当前所有容器container的ID等信息。
    记录对应的CONTAINER ID(这里我用XXX代替)

    1
    2
    3
    root@ip-172-31-39-243:/home/ubuntu# docker ps  --all
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    00a863725a6b spurin/hexo "docker-entrypoint.s…" 4 hours ago Up About a minute 0.0.0.0:4000->4000/tcp, :::4000->4000/tcp hexo_blog
  2. 使用commit命令, 将这个容器container存到本地images里。

    1
    docker commit XXX  -m "hexo_2023_10_07" ditw/hexo:hexo_v1.0

3.使用docker images查看当前的image列表

1
2
3
4
root@ip-172-31-39-243:/home/ubuntu# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ditw/hexo v1.0 cf91d632ff5d 24 minutes ago 1.34GB
spurin/hexo latest 935d3dd4f0d8 2 months ago 1.03GB
  1. docker login设置登录docker hub的用户名和密码信息。
  2. 使用push推送到docker hub上。
    1
    docker push ditw/hexo:v1.0