Jekyll Docker Image Flavors
To support different stages of development and deployment, Jekyll Docker is built in three distinct image variants: Standard (jekyll/jekyll), Builder (jekyll/builder), and Minimal (jekyll/minimal). Selecting the correct image flavor helps optimize download sizes, compilation speeds, and pipeline security.
Feature and Tooling Matrix
| Included Component | Standard (jekyll/jekyll) |
Builder (jekyll/builder) |
Minimal (jekyll/minimal) |
|---|---|---|---|
| Compressed Base Size | Moderate (~200MB) | Large (~300MB) | Compact (~50MB) |
Standard Build Tools (make, gcc, g++, cmake) |
Yes | Yes | Removed at build-time |
| NodeJS & Yarn (Asset compilation support) | Yes | Yes | No |
Deployment Utilities (rsync, openssh, lftp) |
No | Yes | No |
| Preinstalled Gems | Standard Dev Set | Full deployment suite | Essential engine only |
| C-Extension Support at Runtime | Yes | Yes | No (Will fail to compile) |
Flavor Deep Dive
1. Standard Flavor (jekyll/jekyll)
This is the default development image. It contains all the libraries and helpers required to build and preview most Jekyll sites locally.
- Ideal For: Local authoring, theme customization, and debugging layouts.
- System Packages: Installs standard developer packages (
build-base,libxml2-dev,libxslt-dev,imagemagick-dev,vips-dev,sqlite-dev,yaml-dev,zlib-dev,cmake) to ensure compile-time support for native gems, alongside runtime engines likenodejs,yarn, andgit. - Bundled Gems: Installs common plugins and markdown preprocessors, including:
html-proofer(for verifying link integrity)jekyll-reload(for automated development browser reloads)jekyll-mentionsandjemoji(for social features and emojis)jekyll-sass-converterandjekyll-coffeescript(for assets processing)jekyll-assets(for advanced pipeline integrations)kramdownandRedCloth(for markdown parsing)minima(the default Jekyll theme)
2. Builder Flavor (jekyll/builder)
This variant is built on top of the standard image, adding deployment utilities and CI automation tools.
- Ideal For: GitHub Actions, GitLab CI/CD, Jenkins pipelines, and automated deployments to remote hosts.
- System Packages: Adds standard deployment clients, including:
rsync: For efficient incremental file transfers.openssh-client: For ssh authentication and secure execution keys.lftp: For automated, robust FTP/SFTP uploads.git: For managing version control changes inside the runner.- Bundled Gems: Adds plugins used to publish and validate live web apps:
s3_website: For direct deployments to AWS S3 buckets.html-proofer: For validating code quality in pipeline runners.jekyll-sitemapandjekyll-feed: For generating search-engine and RSS files.jekyll-redirect-from: For managing legacy URL redirects.
3. Minimal Flavor (jekyll/minimal)
This flavor is stripped of all compilation tools, asset processing engines, and extraneous libraries to provide a minimal final runtime footprint.
- Ideal For: Serving precompiled static sites in security-sensitive or resource-constrained environments.
- Design Constraint: To minimize size, compilation tools (
gcc,g++,make,cmake,ruby-dev,zlib-dev) are removed from the image during build. Gems requiring native C compilations (such as Nokogiri or Sassc) cannot be compiled at runtime. - Bundled Gems: Contains only the bare essentials:
kramdownjekyll-sass-converterjekyll-coffeescriptminima
!!! info "Using Minimal with Custom Gems"
If your site requires custom plugins that depend on native C extensions, you must use the standard jekyll/jekyll image. Trying to run bundle install with native extensions in jekyll/minimal will result in compilation failures.