2016/03/01

Ruby imageの日本語設定方法

invalid byte sequence in US-ASCII

お仕事でRSpecでE2Eテストを書いているのだが、Windows上で動かすとエラーメッセージが文字化けしていたりして、書きやすい環境とはちょっと言い難い。Jenkinsからテスト実行用のDocker コンテナを起動してテストしているので、テストを書くときも使うことにした。

で、テストを書いて動かしてみたら、なんだかエラーがでている。出ているのだが、invalid byte sequence in US-ASCII となっているので、元々出したいメッセージが出ていない状況になっている。

原因は文字コード

ググってみて、* Ruby - cronで「invalid byte sequence in US-ASCII」例外発生! - mk-mode BLOGを見つけた。状況とあわせて考えると、localeが日本語になっていないのが原因のようだ。確かに、LANGもLC_CTYPEも設定していない。

Ruby imageのlocaleを設定する

OFFICIAL REPOSITORY Ruby/を使うようにDockerfileを書き換えていたので、Debianでのロケールの変更方法をググった。
Debian/Ubuntuのデフォルトロケールを変更する - Qiitaが見つかったので、それに従ってDockerfileを直してみた。以下抜粋 これで動かしたところ、invalid byte sequence in US-ASCII と言われずに、日本語を含むエラーメッセージが表示された。やれやれ。




0 件のコメント :

コメントを投稿

Comments on Google+: