文章

Jekyll本地Docker部署

Jekyll本地Docker部署

本文介绍 Jekyll 本地 Docker 部署。

Jekyll 本地 Docker 部署

由于我的 Github Pages 依赖于 jekyll,每次有较复杂的排版时总是会出现莫名其妙的问题,所以需要配置一个本地的预览环境。但是不想主机上安装过多的定制化功能,技术路线选择了 Docker 容器。

Docker 中 Jekyll 是2022年发布的,现在很多模板已不适用,本网址已弃用

1. Jekyll

官网:https://jekyllrb.com/

汉化:https://jekyllcn.com/

Jekyll 是一个简单的博客形态的静态站点生产机器。它有一个模版目录,其中包含原始文本格式的文档,通过一个转换器(如 Markdown)和我们的 Liquid 渲染器转化成一个完整的可发布的静态网站,你可以发布在任何你喜爱的服务器上。Jekyll 也可以运行在 GitHub Page 上,也就是说,你可以使用 GitHub 的服务来搭建你的项目页面、博客或者网站,而且是完全免费的。

1.1. 目录结构

文件描述
_config.yml保存配置数据。
_draftsdrafts(草稿)是未发布的文章。
_includes你可以加载这些包含部分到你的布局或者文章中以方便重用。
_layoutslayouts(布局)是包裹在文章外部的模板。
_posts这里放的就是你的文章了。
_data格式化好的网站数据应放在这里。
_site一旦 Jekyll 完成转换,就会将生成的页面放在这里(默认)。
.jekyll-metadata该文件帮助 Jekyll 跟踪哪些文件从上次建立站点开始到现在没有被修改,哪些文件需要在下一次站点建立时重新生成。
HTML, Markdown, Textile files如果这些文件中包含 YAML 头信息部分,Jekyll 就会自动将它们进行转换。
Other Files/Folders其他一些未被提及的目录和文件如 css 还有 images 文件夹, favicon.ico 等文件都将被完全拷贝到生成的 site 中。

2. Docker

官网: https://www.docker.com/

Docker 容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、更能高效地利用服务器。容器更多的用于表示软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。

3. 部署

3.1. 下载 Docker

直接到官网下载,Windows 直接下载桌面版安装即可,会重启电脑并自动将命令添加在环境变量中。

3.2. 下载 Jekyll

1
docker pull jekyll/jekyll

3.3. 使用 Jekyll

3.3.1. 下载 Jekyll 博客模板

GitHub 上下载一个模板即可。

1
git clone git@github.com:august295/august295.github.io.git

3.3.2. 本地部署

1
docker run -it --name my-jekyll -p 127.0.0.1:4000:4000 -v D:\\Github\\august295.github.io:/srv/jekyll jekyll/jekyll jekyll serve
  • my-jekyll: 创建容器名称
  • 4000:4000: 容器的端口映射
  • D:\\Github\\august295.github.io: Windows 本地路径
  • /srv/jekyll: 映射路径
  • jekyll/jekyll: 指定上述下载的 Jekyll
  • jekyll serve: Jekyll 启动服务

看到服务网址即可在本机上访问:http://127.0.0.1:4000/

3.3.3. 其他命令

1
2
3
4
5
6
# 开启容器
docker start my-jekyll
# 重启容器
docker restart my-jekyll
# 关闭容器
docker stop my-jekyll
本文由作者按照 CC BY 4.0 进行授权