みつきんのメモ

組み込みエンジニアです。Interface誌で「My オリジナルLinuxの作り方」連載中

gitbook-templateを試す(その3)

はじめに

前回のつづき。

Dockerベースのgitbook-templateを使用していて、book.jsonでtitleに日本語を使用するとPDFに変換した時に文字化けするので調べた。

コンテナのロケール

おそらくコンテナのロケールがデフォルトのままであるため日本語が使用できないのだろうと、 コンテナのロケールを日本語に設定する方法を調べたところ、こんな記事を見つけた。

これを参考にDockerfileを次のように修正したみた。

diff --git a/Dockerfile b/Dockerfile
index 1e40043..41555f4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,6 +4,7 @@ LABEL maintainer="HeRoMo"
 # install apt packages
 RUN apt-get update -y && \
     apt-get install -y \
+      locales \
       bzip2 \
       calibre \
       fonts-ricty-diminished && \
@@ -19,4 +20,9 @@ RUN chmod 755 /usr/bin/start.sh
 RUN mkdir -p /opt/gitbook
 COPY ./book.json /opt/gitbook
 
+RUN locale-gen ja_JP.UTF-8
+ENV LANG ja_JP.UTF-8
+ENV LC_CTYPE ja_JP.UTF-8
+RUN localedef -f UTF-8 -i ja_JP ja_JP.utf8
+
 ENTRYPOINT ["start.sh"]

コンテナのビルドと確認

docker-compose.ymlがあるディレクトリで次のコマンドを実行する。

$ docker-compose build
$ docker-compose run --rm gitbook pdf

文字化けが直った。

まとめ

Dockerを使っていて日本語でに文字化けするようなら、コンテナのロケールを確認すると良い。