相信大家看了Docker安装hexo(二)后,基本上运行hexo应该没什么问题了.但是很不幸,那个镜像也是一个坑,因为标签功能是没办法实现的,安装json-content老是失败,另外.真实的hexo项目文件,其实放进容器是不好的, 如果容器哪天挂了再启动不起来.你的文件就拿不出来了.这是有可能的,比如你改了容器里面的一个配置,然后报错一直启不来,那就完了…
这里,给大家说的是当前这个博客的实际安装过程
拉取镜像
1 | docker pull docker.io/haocen/docker-hexo-with-hexo-admin |
这个镜像是国外的,我直接去dockerhub上找的,如果你打不开,下不下来,当然是因为你上网不够科学.这个.我上传了一份镜像到百度网盘,大家可以自行下载这个镜像
1 | 链接: https://pan.baidu.com/s/1isun23aKMfvOxPvOcVtOKQ 密码: f2gv |
下载的镜像与pull的镜像是完全一样的,不过需要先上传到centos中.然后运行以下命令:
1 | 加载镜像命令: |
/root/hexoadmin.tar是镜像在centos中的绝对路径请不要照搬,以你上传文件的实际路径为准
1 | 修改镜像标签: |
上面的78d86f50d76c需要你docker images运行,然后查看他的imageId,将这个标签改为后面的名字,版本为latest
运行容器
1 | docker run -d --name hexo -p8080:4000 docker.io/haocen/docker-hexo-with-hexo-admin |
此时可以查看日志
1 | docker logs -f hexo |
有警告不用管,template built之后.访问ip:8080还是访问不了的.输入docker ps发现容器也还没有运行,此时再重新启动一次容器:
docker start hexo
等几秒钟,容器就启动好了.打开后的页面当然是一如既往的丑:
修改yilia主题:
去github下载yilia主题,这就是本博客的主题,如果喜欢就用这个吧.不喜欢这个,随便改,主题请自行百度或者去官网下载,前面的博客有提到过这里就不再做说明了.下载后传进centos中,
放在themes文件夹下,下载的文件什么 xx-master,记得改成yilia,与主题名称一致,再将文件放进容器:
docker cp yilia hexo:/blog/themes/
然后修改hexo的配置,与themes同级的一个文件,不是在yilia中的那个哦.
将_config.yml 中的theme: 后面改成yilia,再说一次.yml的所有的配置中,冒号后必须有一个空格,不然配置不生效,还很有可能把容器搞挂了.
进入容器命令是:
docker exec -it hexo /bin/sh
修改_config.yml输入vi命令时,发现容器提示vi not found.这个容器中是没有vi命令的…当然这也难不到谁,而此时我要说的重点也来了:容器只是一个环境,真正的数据文件,最好还是挂载在当前的系统中.不然容器挂了,数据也就很难拿出来了.因为先把/blog文件夹拷出来:
docker cp hexo:/blog /root
确定文件保存后,先删掉这个容器吧,关键的文件我们已经弄出来了.
docker stop hexo
docker rm hexo
然后重新用个容器,记得把本地的文件挂载在容器中:
docker run -v/root/blog:/blog:Z -d --name hexo -p18080:4000 docker.io/haocen/docker-hexo-with-hexo-admin
这个命令里面有个:Z,这是不能掉的,不然容器没有权限访问当前的服务器的文件,总是会报permisstion denied的,记得一定要:Z,不然启不了的哦.
这次启动的日志很少:
docker logs -f hexo
find: './run_scripts/': No such file or directory
Check if folder is empty.
Starting server...
INFO Start processing
INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.
然后访问ip:18080,发现还是那个老旧的样式.现在是修改样式的时候了.
cd /root/blog
vi _config.yml
然后修改theme: yilia
再次进入容器,重新编译项目 再重启
docker exec -it hexo /bin/sh
hexo g
exit
退出容器后再运行:
docker restart hexo
再次访问主页:
终于眼前一亮了!
但是突然发现点击左侧的所有文章的时候出来了一坨大大的提示:
提示的意思就是分类不可用,要安装东西,还要配置东西.跟着一步步来就好了:
docker exec -it hexo
npm i hexo-generator-json-content --save
exit
cd /root/blog
vi _config.yml
将后面的一大堆配置粘贴进去,注意的是 yml的格式,一层一个空格,所以meta 到 posts 前面是一个空格,下面的是两个空格
docker restart hexo
再就已经完好了
hexo-admin在这个镜像里面已经自带了.具体的教程,请参看Docker安装hexo(一)
这就是当前我这个博客搭建的全部过程.
其实卡在了安装 hexo-generator-json-content插件与寻找 hexoadmin镜像,还有那个运行的:Z命令很久,端午节三天,这些坑起码用了我一天…不过好在现在博客已经能够正式使用了,自己也在不断的丰富,欢迎大家来博客下面发评论与赞赏. 下一个博客,应该会写如何集成gitment.也就是评论的功能