From 61a75eeb4d1adbe2ed13e63b0572ec2564629a82 Mon Sep 17 00:00:00 2001 From: YongjieZhao Date: Mon, 4 Dec 2017 16:38:46 +0800 Subject: [PATCH] use docker build document --- website/Dockerfile | 3 +++ website/Makefile | 13 +++++++++++++ website/_dev/howto_docs.md | 31 ++++++++++++++++++++++++++++++- 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 website/Dockerfile create mode 100644 website/Makefile diff --git a/website/Dockerfile b/website/Dockerfile new file mode 100644 index 000000000..e58d0e412 --- /dev/null +++ b/website/Dockerfile @@ -0,0 +1,3 @@ +FROM jekyll/jekyll:2.5.3 + +RUN gem install jekyll-multiple-languages:1.0.11 kramdown rouge diff --git a/website/Makefile b/website/Makefile new file mode 100644 index 000000000..1b595838a --- /dev/null +++ b/website/Makefile @@ -0,0 +1,13 @@ +#!/bin/bash + +docker.build: + docker build -f Dockerfile -t kylin-document:latest . + +document.build: + docker run --volume="$(shell pwd):/srv/jekyll" --rm -it kylin-document:latest jekyll build + +runserver: + docker run --volume="$(shell pwd):/srv/jekyll" -p 4000:4000 --rm -it kylin-document:latest jekyll server --watch + +clean: + rm -rf _site diff --git a/website/_dev/howto_docs.md b/website/_dev/howto_docs.md index a20cd1709..8867b59e3 100644 --- a/website/_dev/howto_docs.md +++ b/website/_dev/howto_docs.md @@ -20,7 +20,7 @@ Install following tools before you add or edit documentation: * `gem install jekyll jekyll-multiple-languages kramdown rouge` * __Note__: Some specific version of jekyll and jekyll-multiple-languages does not work together (I got a "undefined method" error with jekyll 3.0.1 and jekyll-multiple-languages 2.0.3). In that case, `jekyll 2.5.3` and `jekyll-multiple-languages 1.0.8` is the known working version. * eg. Use `gem install jekyll --version "=2.5.3"` to install a specific version. - + * __Note__: For Mac user, if gem install raise error like this 'ERROR: While executing gem ... (Gem::FilePermissionError)'. To solve this problem you can use 'brew install ruby', then restart you terminal. 3. And optionally any markdown editor you prefer Below is a gem list that works. Stick to these versions if jekyll installation becomes a problem. @@ -43,6 +43,35 @@ rouge (1.10.1) ... ``` +## Use Docker for document compile + +The latest kylin release provides dockerfile, to reduce build complexity using docker and Makefile can call docker command. + +``` +$ pwd +/Users//kylin/website +$ make docker.build +docker build -f Dockerfile -t kylin-document:latest . +Sending build context to Docker daemon 82.44MB +Step 1/3 : FROM jekyll/jekyll:2.5.3 + ---> e81842c29599 +Step 2/3 : RUN gem install jekyll-multiple-languages -v 1.0.11 + ---> Using cache + ---> e9e8b0f1d388 +Step 3/3 : RUN gem install rouge -v 3.0.0 + ---> Using cache + ---> 1bd42c6b93c0 +Successfully built 1bd42c6b93c0 +Successfully tagged kylin-document:latest +$ make runserver +docker run --volume="/Users//kylin/website:/srv/jekyll" -p 4000:4000 --rm -it kylin-document:latest jekyll server --watch +Configuration file: /srv/jekyll/_config.yml + Source: /srv/jekyll + Destination: /srv/jekyll/_site + Generating... +... +``` + ## About Jekyll Jekyll is a Ruby script to generate a static HTML website from source text and themes, the HTML is generated before being deployed to the web server. Jekyll also happens to be the engine behind GitHub Pages. -- 2.14.1