Jekyll Docker是一个预配置Jekyll及其依赖的软件镜像,以封装格式提供即用型环境。它包含默认的 gems 集、包装器和额外软件包,主要供通过CI将Jekyll构建结果部署到其他服务器的用户使用。
builder镜像(jvconseil/jekyll-docker)包含标准镜像中未提供的额外工具,如lftp、openssh等,专为需要通过CI将Jekyll构建部署到其他服务器的用户设计。
shexport JEKYLL_VERSION=4.3.3 docker run --rm \ --volume="$PWD:/srv/jekyll:Z" \ -it jvconseil/jekyll-docker:$JEKYLL_VERSION \ jekyll build
标准镜像(jvconseil/jekyll)已不再支持,原包含默认"dev"包、Node.js及社区维护的常用gems,简化Jekyll使用。
shexport JEKYLL_VERSION=4.3.3 docker run --rm \ --volume="$PWD:/srv/jekyll:Z" \ -it jvconseil/jekyll:$JEKYLL_VERSION \ jekyll build
cmdset site_name=my-blog docker run --rm --volume="%CD%:/srv/jekyll" -it jvconseil/jekyll sh -c "chown -R jekyll /usr/gem/ && jekyll new %site_name%" && cd %site_name%
Linux用户可跳过export MSYS_NO_PATHCONV=1(用于兼容性处理):
shexport site_name="my-blog" && export MSYS_NO_PATHCONV=1 docker run --rm \ --volume="$PWD:/srv/jekyll" \ -it jvconseil/jekyll \ sh -c "chown -R jekyll /usr/gem/ && jekyll new $site_name" \ && cd $site_name
minimal镜像(jvconseil/jekyll-minimal)已不再支持,体积极小,不含额外gems和开发依赖,仅保留基础Jekyll。
需提供.apk文件以支持Nokogiri等工具,因未安装开发头文件或依赖,C语言编写的gems可能安装失败。
shexport JEKYLL_VERSION=4.3.3 docker run --rm \ --volume="$PWD:/srv/jekyll:Z" \ -it jvconseil/jekyll-minimal:$JEKYLL_VERSION \ jekyll build
lftp、openssh等部署工具jekyll serve启动本地服务器,实时预览网站JEKYLL_ROOTLESS环境变量支持无root容器本地开发时,可在容器内运行Jekyll服务器,监听文件变化并自动重建,通过http://localhost:4000访问预览:
shdocker run --rm \ --volume="$PWD:/srv/jekyll:Z" \ --publish [::1]:4000:4000 \ jvconseil/jekyll-docker \ jekyll serve
镜像会自动安装Gemfile中指定的依赖(匹配Gemfile.lock版本),包括Jekyll本身。如需更新依赖:
shexport JEKYLL_VERSION=4.3.3 docker run --rm \ --volume="$PWD:/srv/jekyll:Z" \ -it jvconseil/jekyll-docker:$JEKYLL_VERSION \ bundle update
通过挂载缓存卷加速构建(适用于CI环境):
shexport JEKYLL_VERSION=4.3.3 docker run --rm \ --volume="$PWD:/srv/jekyll:Z" \ --volume="$PWD/vendor/bundle:/usr/local/bundle:Z" \ -it jvconseil/jekyll-docker:$JEKYLL_VERSION \ jekyll build
注意:缓存卷根目录(如
vendor)需在_config.yml的exclude数组中排除,避免Jekyll构建时处理。
使用无root容器管理系统时,设置JEKYLL_ROOTLESS环境变量(非空值):
shpodman run -ti --rm -v .:/srv/jekyll -e JEKYLL_ROOTLESS=1 docker.io/jvconseil/jekyll-docker jekyll new .
通过环境变量配置Jekyll行为:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
JEKYLL_UID | 1000 | Jekyll进程用户ID |
JEKYLL_GID | 1000 | Jekyll进程用户组ID |
JEKYLL_DEBUG | "" | 启用调试模式(非空值生效) |
VERBOSE | "" | 启用详细输出(非空值生效) |
FORCE_POLLING | "" | 强制轮询文件变化(非空值生效) |
通过.apk文件安装系统包(每行一个包名),包名可查询Alpine Linux软件包站。builder镜像默认包含ruby-dev、xml、xslt、git等常用依赖,满足多数Ruby包需求。
本Docker镜像受envygeeks/jekyll-docker启发,在其基础上改进功能和版本。
如果本项目对您有帮助,欢迎请我喝杯咖啡☕️:-)
![成为JV-conseil的赞助者]([***]
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429