LoginSignup
0
0

More than 3 years have passed since last update.

MySQL5.7の公式イメージでUTCがAsia/Tokyoで上書きされた

Last updated at Posted at 2018-10-22

5.7以外のバージョンでは確認していない(もしくは覚えていない)のですが
MySQLの公式Dockerイメージを使ったコンテナ内で

mysql> select now() as local, CONVERT_TZ(now(), 'Asia/Tokyo', 'UTC') as utc from dual;

と打ったとき、
local も UTC も同じ値が返ってきたのでなんでだろうと思って
$ cat /usr/share/zoneinfo/UTC
とか打ったら

...
JST-9

と、 内容が/usr/share/zoneinfo/Asia/Tokyoと同じになっていて
戦慄したのが事の発端です。

このときはEC2のECS(Fargateではないということ)でコンテナを動かしていて
タスク設定で /etc/localtime をホストからコンテナにマウントしていました。

というわけで、mysqlのコンテナに入って /etc/localtime を見てみたら...

/etc/localtime -> /usr/share/zoneinfo/Etc/UTC
/usr/share/zoneinfo/Etc/UTC -> ../UTC

つまりこれで、
ホストのAsia/Tokyoデータでコンテナ内のUTCデータが上書きされたってこと
...ですかね

こわっ

環境変数にTZ=Asia/Tokyoを設定すればいいんですが
(確かDocker公式的にはこっち推奨でしたっけ)
最初何が起こってるかわからなかった...

/etc/localtime って以前はかなり常習的にマウントしてたんだけど
こんなことになってたっけな...

認識違いや不備ありましたらご指摘くださいm(_ _)m

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0