んーと、
— masasuzu 🍶🐫 (@masasuz) November 22, 2017
docker上のubuntu16.04でPOSIX::strftime::Compilerビルドしようと思ったら、04_tzset.tが失敗してた。
テストの中でtimezoneセットしてるのにGMTから変わってなくてなんだこれ。。。。?って思ってたら、tzdataがインストールされてなかったというオチ。
、、、、、、時間返せ。
その通りで、こんなDockerfileでビルドしたら
FROM ubuntu:16.04 WORKDIR /opt/ex RUN apt-get update RUN apt-get install curl perl make -y RUN curl -L https://cpanmin.us | perl - App::cpanminus RUN cpanm --verbose POSIX::strftime::Compiler
こんな感じで失敗したというお話。
# Failed test at t/04_tzset.t line 35. # got: '+0000' # expected: '+0930' # Failed test 'Australia/Darwin / 2013-1-10 => Australia' # at t/04_tzset.t line 37. # 'Australia' # doesn't match '(?^:A?CST)' # Failed test at t/04_tzset.t line 45. # got: '+0000' # expected: '+0930' # Failed test 'Australia/Darwin / 2013-1-10 => GMT' # at t/04_tzset.t line 47. # 'GMT' # doesn't match '(?^:A?CST)' # Failed test at t/04_tzset.t line 35. # got: '+0000' # expected: '+0930' # Failed test 'Australia/Darwin / 2013-5-10 => Australia' # at t/04_tzset.t line 37. # 'Australia' # doesn't match '(?^:A?CST)' # Failed test at t/04_tzset.t line 45. # got: '+0000' # expected: '+0930' # Failed test 'Australia/Darwin / 2013-5-10 => GMT' # at t/04_tzset.t line 47. # 'GMT' # doesn't match '(?^:A?CST)' # Failed test at t/04_tzset.t line 35. # got: '+0000' # expected: '+0930' # Failed test 'Australia/Darwin / 2013-8-15 => Australia' # at t/04_tzset.t line 37. # 'Australia' # doesn't match '(?^:A?CST)' # Failed test at t/04_tzset.t line 45. # got: '+0000' # expected: '+0930' # Failed test 'Australia/Darwin / 2013-8-15 => GMT' # at t/04_tzset.t line 47. # 'GMT' # doesn't match '(?^:A?CST)' # Failed test at t/04_tzset.t line 35. # got: '+0000' # expected: '+0930' # Failed test 'Australia/Darwin / 2013-11-15 => Australia' # at t/04_tzset.t line 37. # 'Australia' # doesn't match '(?^:A?CST)' # Failed test at t/04_tzset.t line 45. # got: '+0000' # expected: '+0930' # Failed test 'Australia/Darwin / 2013-11-15 => GMT' # at t/04_tzset.t line 47. # 'GMT' # doesn't match '(?^:A?CST)' # Looks like you failed 16 tests of 16. # 以下略
最初見たときtimezone設定してるのにGMT????何やっても+0000なの?????? は???って感じだった。
どうやらtzdataが入ってなかったようで、どっかのタイミングでapt-get install tzdata
をしてあげれば良さそう。
イメージがコンパクト過ぎると逆に思いもやらないところでやられてしまうという好例でした。
逆に言うと普段の環境が盛々すぎるとも言えるのかな。