タイムゾーンが原因で詰まった話
- devで開発後stgへデプロイしたが, 挙動がおかしい
- お知らせを登録する画面で「公開日時」なるものをDBにインサートすると, 実際の日時からずれて登録されていた
- devとstgそれぞれのAppサーバーとMysqlのタイムゾーンを確認すると以下だった
- dev
- Appサーバー: JST
- Mysql: JST
- stg
- Appサーバー: UTC
- Mysql: JST
- dev
- stgのAppサーバーのタイムゾーンをUTC -> JSTにすることで解決した
- 方法としてはDocker上にJavaアプリを立ち上げていたので, docker-compose.ymlで以下のように記述した
services:
XXX:
image: XXX
container_name: XXX
hostname: XXX
extra_hosts:
- XXX
volumes:
- XXX
ports:
- "8080:8080"
networks:
XXX:
ipv4_address: XXX
environment:
- TZ=Asia/Tokyo