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了,诶。

posted @ 2024-10-09 20:40  oblivionl  阅读(110)  评论(0)    收藏  举报