Docker container for automatically rebuilding a Jekyll sites
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Dockerfile
README.md
jekyllbuilder.rb

README.md

Jekyllbuilder Dockerfile

This repository contains a daemon that will continuously listen for Git push events and rebuild a Jekyll site whenever the corresponding Git repository is updated.

The notifications of Git updates are expected to come from an AMQP server (e.g RabbitMQ). These messages can be generated from a post-receive hook in the Git repositories. I am using Gitolite which allows one to define a default post-receive hook. See the post-receive in jonls/amqp-post-receive for an example.

When an update to the Git repository is detected it is cloned and Jekyll is used to generate the final site. The clone is done from a local repository in /git. The final site is generated in /www.

Usage

$ docker run -d --link rabbitmq:amqp \
      -e "JEKYLL_REPO=<jekyll-website-repo-name>" \
      -v <www-dest>:/www \
      -v <local-git-repos>:/git:ro \
      jonls/jekyllbuilder

The rabbitmq would be another container running RabbitMQ with the port 5672 exposed. A prebuilt rabbitmq container can be found in the Docker Hub Registry.

ToDo

  • Listen for multiple Git repositories
  • Specify destination for each build
  • Specify Git branch to build
  • Optionally clone public remote repository instead of local