はじめに
前回のつづき。
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を使っていて日本語でに文字化けするようなら、コンテナのロケールを確認すると良い。