Dockerfile

1
2
3
4
5
FROM node:lts-alpine AS runtime
WORKDIR /home/blog
RUN apk add --no-cache git
RUN npm install -g hexo-cli
ENTRYPOINT ["hexo","generate"]

初始化

如果需要运行hexo init,可以通过容器获取默认的hexo模板

1
docker run -it --rm -v "./blog:/home/blog" --entrypoint="" hexo:latest hexo init

命令会将hexo默认模板安装在宿主机当前目录的 ./blog 目录下,宿主机为windows时挂载目录需要调整为绝对目录

创建静态文件

1
docker run -it --rm -v "./blog:/home/blog" hexo:latest

如果不移除容器可以运行以下命令

1
docker run -it --name hexo -v "./blog:/home/blog" hexo:latest

这里将容器名称设定为hexo,之后可以直接运行 docker start hexo 将直接生成或更新静态文件

1
docker run -d -v "./blog:/home/blog" hexo:latest --watch

使用 --watch 参数可以在后台创建一个生成器,这里会监视文件变动并立即重新生成静态文件

错误处理

1
2
ERROR Local hexo not found in /home/blog`
ERROR Try running: 'npm install hexo --save'

可以在blog目录下执行 npm install