[Hugo] werckerを使って記事の公開を自動化する2[高速化]
2016-08-26
Hugo記事公開を高速化する
前回の記事では、標準でよういされているdockerのboxイメージを利用して、werckerを使って記事を公開していた。しかし、記事の公開までに5〜7分ぐらいの時間がかかっていた。これは非常にもどかしい。 今回の記事では、独自のdockerイメージを使うことで高速化を行ってみる。
前回のwercker.yml
wercker.yml
wercker.yml
1box: python:2.7-slim
2build:
3 steps:
4 - install-packages:
5 packages: git
6 - pip-install:
7 requirements_file: ""
8 packages_list: "pygments-style-solarized"
9 - script:
10 name: initialize git submodules
11 code: git submodule update --init
12 - arjen/hugo-build:
13 theme: hugo-uno
14 flags: --buildDrafts=false -v
15deploy:
16 steps:
17 - install-packages:
18 packages: git ssh-client
19 - leipert/git-push:
20 gh_oauth: $GIT_TOKEN
21 repo: mm-git/mm-git.github.io
22 branch: master
23 basedir: public
なぜ遅いか?
- Hugoの記事をビルドするたびに、
git
、ssh
、pygments-style-solarized
をインストールしているため。- それでも上記は、
apt-get update
が無いだけだいぶマシである。 Python 2.7
までインストールしていたら、もっとかかっていただろう。
- それでも上記は、
高速化
独自のdocker boxを作成する。
git
、ssh
、pygments-style-solarized
がインストール済みのdocker boxを作成してみる。werckerで利用するには、docker boxがdocker hubに登録されている必要がある。docker boxの作り方は下記の記事を参照。
独自docker boxを使ったwercker.yml
wercker.yml
1box: mmgit/hugo-box
2build:
3 steps:
4 - script:
5 name: initialize git submodules
6 code: git submodule update --init
7 - arjen/hugo-build:
8 theme: hugo-uno
9 flags: --buildDrafts=false -v
10deploy:
11 steps:
12 - leipert/git-push:
13 gh_oauth: $GIT_TOKEN
14 repo: mm-git/mm-git.github.io
15 branch: master
16 basedir: public
- 必要なものがインストールされたboxを使うことで、体感的には1〜2分で記事が配信されるようになった。
- wercker.ymlもhugoのビルドとデプロイのみの記述になり、非常にスッキリした。