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-credential-desktop.exe not installed or not available in PATH

rm ~/.docker/config.jsonしたら起動できた

Cloud Datastoreのローカル環境をDockerで構築する

CloudDatastoreエミュレータとgoogle-cloud-guiの環境を構築

Extension fieldsを使ってdocker-composeのコンテナ設定を共通化する

Railsコンテナ設定を共通化して、commandだけそれぞれで変えるようにした

docker-composeコマンドのエイリアスを作る

dcコマンドを置き換えた

Dockerでpt-query-digestを使う

コンテナのおかげで手軽にslowlog分析ができるようになった

mysqld: [Warning] World-writable config file '/etc/mysql/conf.d/my.cnf' is ignored.

windowsだとvolume mountすると777になるのでDockerfileを作ってcopyするようにした