こんにちは。KOUKIです。
表題の通り、alpine linuxベースのコンテナで、時刻合わせをした時の方法を記事にしました。
<目次>
事象
大抵のコンテナは、時刻ベースがUTCになっています。
1 2 3 4 |
# Dockerfile FROM node:14.9.0-alpine RUN apk update |
1 2 3 4 5 6 7 |
# docker-compose.yml version: "3" services: alpine: build: . command: /bin/sh -c "while :; do sleep 10; done" |
1 2 3 4 5 |
docker-compose up docker-compose exec alpine sh / # date Wed Mar 17 02:11:30 UTC 2021 |
この時刻を日本時間に合わせたいと思います。
TZを設定
docker-compose.ymlにTZ(Time Zone)を設定すると日本時刻に合わせられるという記事が多いです。
1 2 3 4 5 6 7 8 9 |
# docker-compose.yml version: "3" services: alpine: build: . command: /bin/sh -c "while :; do sleep 10; done" environment: TZ: Asia/Tokyo # 追加 |
大抵のコンテナならこの対応だけでOKなのですが、alpineは、この対処方法だけでは解決できません。
1 2 3 |
$ docker-compose exec alpine sh / # date Wed Mar 17 02:20:51 UTC 2021 |
tzdataを追加
tzdataをDockerfileに追加すると日本時刻に合わせられるようです。
1 2 3 4 5 6 7 |
# Dockerfile FROM node:14.9.0-alpine RUN apk update # 追加 RUN apk add tzdata |
1 2 3 4 5 |
docker-compose build docker-compose up $ docker-compose exec alpine sh / # date Wed Mar 17 11:24:27 JST 2021 |
これでOKですね^^
おわりに
これまで意識していませんでしたが、Dockerの時刻同期をしておかないとDBへの登録処理などでデータの不整合が出てきたりして大変です^^;
ご覧の通り、簡単に時刻合わせができるので、コンテナ環境を構築する際は検討いただければと思います。
それでは、また!
コメントを残す
コメントを投稿するにはログインしてください。