Docker Apline LinuxのTimezoneをJSTに変更する

公開日時

alpine linuxtベースのnodejs用Dockerコンテナを使っていて、タイムゾーンをJSTに変更したかったので以下を追加した。

FROM node:12.14-alpine

# timezone setting
RUN apk --no-cache add tzdata && \
    cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
    apk del tzdata

# ...

が、コンテナにアクセスしてdateを実行してもUTC表記のままになってしまう現象に遭遇。

調べてみたら[[docker-compose.yml]]に環境変数でTZを指定していたのが原因だった。

TZが設定されてされていると/etc/localtimeが参照されないとのことらしい。

version: "3"
services:
  app:
    build: .
    environment:
      TZ: Asia/Tokyo

今回はJSTに固定したかったので、docker-compose.ymlからTZ環境変数を削除することで解決した。

参考


Related #docker

Dockerのデータ保存場所を変更する

/etc/docker/daemon.jsonに追記

docker-composeで最新のログを確認する場合

tailオプションも合わせて指定しよう

docker-compose build時に「no Space Left on Device」が発生

1年前にも同じエラーにハマってた

Windows10 HomeにDockerを入れる

Windows 10 May 2020 UpdateでWSL2が導入されたおかげ