Создаю новый сайт:

docker run --rm \
  --volume="$PWD:/srv/jekyll" \
  -it jekyll/jekyll \
  sh -c "jekyll new --skip-bundle ."

Открываю файл Gemfile и редактирую закомментированную строчку

gem "github-pages", "~> 231", group: :jekyll_plugins
gem "jekyll", "~> 3.9.5"

Добавляю Webrick

docker run --rm --volume="$PWD:/srv/jekyll"  -it jekyll/jekyll sh -c "bundle add webrick"

Устанавливаю правильные версии зависимостей

docker run --rm --volume="$PWD:/srv/jekyll"  -it jekyll/jekyll sh -c "bundle install"

Локальная разработка

Из папки с проектом запускаю. Работает сервер. На хосте можно смотреть как будет выглядеть сайт, при перезагрузке страницы будет билдится сайт заново.

docker run --rm -v $PWD:/srv/jekyll:Z --publish 4000:4000 jekyll/jekyll jekyll serve

Короткая версия команды без удаления контейнера.

docker run --name jekyll -v $PWD:/srv/jekyll:Z -p 4000:4000 jekyll/jekyll jekyll serve

Перезапуск контейнера с сервером для локальной разработки

docker start -i jekyll

Jenkins

Собирать можно этой командой

export JEKYLL_VERSION=3.8
docker run --rm \
  --volume="$PWD:/srv/jekyll:Z" \
  -it jekyll/builder:$JEKYLL_VERSION \
  jekyll build

Ссылки

  • https://hub.docker.com/r/jekyll/jekyll/
  • https://github.com/envygeeks/jekyll-docker/blob/master/README.md