Dockerでタイムゾーン指定することについてメモる
mariaDBのイメージ触っているときにタイムゾーン指定で困ったことがあるので調べました。(jessie:Debianの場合。alpha linux使っている場合はこれじゃできないので注意)
最近の開発として、appだけのコンテナ1つで済むことがあまりなく、DBなりKVSなりのデータストアがある前提で作ることが多いです。なので基本的にdocker-composeを使っています。
docker-composeタイムゾーンを指定したい場合、方法として2つあります。
- docker-compose.yml側に書いて管理
- Dockerfileでそれぞれ直接指定して管理
docker-compose.ymlで指定する場合
environment: - "TZ=Asia/Tokyo"
Dockerfileで指定する場合
ENV TZ='Asia/Tokyo'
まあどちらでもできるんですよ。
で、ちょっとした悩みとしてあるのが、DockerFileに書くか、docker-composeに書くか。「イメージ単体として完成されているべき」と考えるのであれば、Dockerfileに書くのが妥当だと思うのですが、複数のイメージ前提のシステムであれば、全てで統一されていることが必須になるわけですね。
うーん...正直どちらでもいい気が...タイムゾーンってそんなに変更するものではないですしね(´・ω・`)
考えた結果、冒頭で書いたように、ベースとするイメージによって指定方法が変わってくることもあるので、イメージ単位で指定できるDockerfile側に記述することにしましょう。