docker+Hexo踩坑记
起因
前段时间博客园差点寄了,在高中时曾经用Hexo+Github Pages搭建过博客,但因为各种原因停止服务了,现在打算做个docker镜像作为hexo的服务端,这样以后更换服务器就可以很方便的部署了。
前期
最开始的想法是在镜像里塞hexo,每次更新文章的时候去容器里更新,整一套流程全部都在容器里,但是这样的话怎么储存和备份文章就是个问题。容器如果挂了文章就全没了,如果每次更新文章都要push一个镜像就很麻烦。
后来发现hexo是用git把解析好的网站push到github上的,所以我只需要在镜像里搭建nginx服务然后配好git就可以了。
踩坑
我选择使用nginx来构件,这里又不得不说最近docker的形势了,dockerhub和一众镜像站都没了真难受啊。
构建的过程参照了这篇文章。
在nginx镜像里装了git后发现要clone不到本地,去学了一下发现可以通过ssh clone,就转发了容器的22端口。
由于nginx镜像的启动指令是nginx,所以还要让容器启动ssh服务的话需要自己写启动指令。
start.sh
#!/bin/bash
service ssh start
nginx -g 'daemon off;'
Dockerfile
FROM registry.cn-hangzhou.aliyuncs.com/oierlin/nginx:v0
RUN chmod +x /root/start.sh
EXPOSE 22 80
CMD ["/root/start.sh"]
完成
启动指令docker run -itd -p 2222:22 -p 80:80 registry.cn-hangzhou.aliyuncs.com/oierlin/nginx:v1
本地Hexo配置:需要修改ip或者域名
_config.yaml
url: http://10.15.89.111
deploy:
type: git
repository: ssh://root@10.15.89.111:2222/var/repo/Oblivion.git
branch: master
后续
hexo的latex好麻烦,捣鼓着出了很多bug,打算转wordpress了,诶。

浙公网安备 33010602011771号