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 like nodejs, yarn, and git.
  • Bundled Gems: Installs common plugins and markdown preprocessors, including:
  • html-proofer (for verifying link integrity)
  • jekyll-reload (for automated development browser reloads)
  • jekyll-mentions and jemoji (for social features and emojis)
  • jekyll-sass-converter and jekyll-coffeescript (for assets processing)
  • jekyll-assets (for advanced pipeline integrations)
  • kramdown and RedCloth (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-sitemap and jekyll-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:
  • kramdown
  • jekyll-sass-converter
  • jekyll-coffeescript
  • minima

!!! 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.