Docker コンテナ(alpine)の時刻を JST に変更する

  • 19 Jan 2021

Docker コンテナの時刻変更で思った以上にハマったのでメモ。結論はシンプルでした。

概要

Docker コンテナを利用するときに時刻が CST や UTC で面倒があったので変更しました。

シンプルにこれでよい

コンテナを作るときに tzdata をインストールして、コンテナを上げるときに TZ=”Asia/Tokyo” を指定する、これでうまくいきます。

試してみる

Dockerfile を作ります。alpine は事前に docker pull しておいてください。

FROM alpine
RUN apk --update add tzdata

ビルドしてみます。

$ docker build -t tz_test:1.0 .

イメージからコンテナ立ち上げます。その際にTZ環境変数で変更して date で確認します。

$ docker run -it --rm -e TZ=Asia/Tokyo tz_test:1.0 sh
/ # date
Wed Jan 20 01:14:03 JST 2021

docker-compose.yml で build しつつ確認する場合はこちら。

version: '3.7'
services:
  app:
    build: ./
    environment:
      TZ: Asia/Tokyo
    command: date

以上です。