Skip to content

Instantly share code, notes, and snippets.

@patoroco
Last active May 21, 2017 18:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save patoroco/f8efd809ca275b8fc39d5f0a56621094 to your computer and use it in GitHub Desktop.
Save patoroco/f8efd809ca275b8fc39d5f0a56621094 to your computer and use it in GitHub Desktop.
Docker to use Jekyll static page generator
FROM ruby:2.4.1-alpine
# https://github.com/ffi/ffi/issues/485#issuecomment-209778567
RUN apk add --update build-base libffi-dev git openssh
ARG SRC_GEMFILE=Gemfile
ARG BUNDLE_GEMFILE=/src/ruby/Gemfile
# Install current gems with bundler
COPY $SRC_GEMFILE $BUNDLE_GEMFILE
COPY $SRC_GEMFILE.lock $BUNDLE_GEMFILE.lock
RUN bundler install --gemfile=$BUNDLE_GEMFILE
# This volume should be mounted when do `docker run`
WORKDIR /src/blog
CMD "/bin/sh"
EXPOSE 4000
.PHONY: build start publish update-gemfile shell
export PROJECT_NAME := jekyll-docker
export HOST_PORT := 4000
# set true / false to test docker build
export DISABLE_DOCKER_CACHE := false
build:
docker build \
--no-cache=$(DISABLE_DOCKER_CACHE) \
-t $(PROJECT_NAME):latest .
start: build
docker run \
-v $(PWD):/src/blog \
--rm -ti -p $(HOST_PORT):4000 --name $(PROJECT_NAME) \
$(PROJECT_NAME) jekyll serve --host=0.0.0.0 --incremental
publish: build
docker run \
-v $(PWD):/src/blog \
-v $(HOME)/.gitconfig:/root/.gitconfig \
-v $(HOME)/.ssh:/root/.ssh \
--rm -t $(PROJECT_NAME) rake blog:publish
update-gemfile:
docker run \
-v $(PWD):/src/blog \
--rm -t $(PROJECT_NAME) bundle install
shell:
docker run \
-v $(PWD):/src/blog \
-v $(HOME)/.gitconfig:/root/.gitconfig \
-v $(HOME)/.ssh:/root/.ssh \
--rm -ti $(PROJECT_NAME)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment