はじめに
HeRoMo/gitbook-template: A gitbook project templateがよさそう。
Gitbook 環境 マイ・ベストを参考に作業する。
が。docker関連が一切入っていないのでそこから。
dockerのインストール
Ubuntuではsnapで入れる方法が簡単。ここが参考になる。
まず古いバージョンを削除。
$ sudo apt-get remove docker docker-engine docker.io containerd runc
次にdocker-ce
をインストールする。
$ sudo snap install docker --stable
dockerのエラー
docker関連のコマンドを実行すると次のようなエラーが発生する。
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/images/create?fromImage=hero%2Fgitbook&tag=latest: dial unix /var/run/docker.sock: connect: permission denied
dockerグループをシステムに追加した後、ユーザーをdockerグループに追加する。
$ sudo addgroup --system docker $ sudo adduser $USER docker $ newgrp docker $ sudo snap restart docker
これは普通に見落としがち。
gitbook-templateの導入
$ curl https://codeload.github.com/HeRoMo/gitbook-template/zip/master -O $ unzip master $ mv gitbook-template-master your-gitbook-name $ cd your-gitbook-name
gitbookの初期化
$ docker-compose run --rm gitbook init
必要かわからないが、ファイルの所有権を変更しておく
$ sudo chown -R ${LOGNAME}:${LOGNAME} gitbook
ローカルサーバの操作
docker-compose.yml
があるディレクトリで操作する。
起動
$ docker-compose up -d
停止
$ docker-compose stop
再起動
$ docker-compose restart
plantuml-cloudプラグインの修正
リンク元にあった謎のセミコロン問題を回避するために一度コンテナにログインする。
$ docker-compose exec gitbook bash
npmが更新されていないように見えるためgitbook/node_modules/gitbook-plugin-plantuml-cloud/index.js
を直接修正する。
# cd gitbook/node_modules/gitbook-plugin-plantuml-cloud # cp index.js index.js.tmp # sed -i 's|`!\[\](/${uml.svgPath});`|`!\[\](/${uml.svgPath})`;|g' index.js.tmp # mv index.js.tmp index.js
ファイルを壊すとコンテナが起動しなくなるのでテンポラリファイルで作業する。 最後のmvの前にdiffなどで確認すると安心。
その後コンテナを再起動する。
$ docker-compose restart
PDF出力
$ docker-compose run --rm gitbook pdf
まとめ
gitbookの導入としては環境も汚れないため便利。
PDF出力時の日本語フォントなど、細かいところは調整が難しい感じ。 gitbookのプラグインはbook.jsonに記述すれば勝手にやってくれるっぽい?