Alpine Linuxで時刻をJSTに設定する(Dockerfile)

公式の手順があるのでそれを参考にした。
Setting the timezone - Alpine Linux

Dockerfileには以下のように記述した。

FROM alpine:latest

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

公式の手順に従って/etc/timezoneを設定するとGMTになってしまったので、それは設定しないようにした。

作ったイメージでdateを実行して確認する。

$ docker build -t jst-alpine .
(snip)

$ docker run --rm jst-alpine date
Tue Aug 28 23:07:21 JST 2018

$ docker run --rm alpine date
Tue Aug 28 14:07:31 UTC 2018

上手くいった。JSTと表示されている。

というか、そもそもアプリケーション側でlocaltimeがJSTだってのを前提にするのが良くない気がする(今までそうしてたけど)。今度検証してみよう。