LoginSignup
0
0

More than 1 year has passed since last update.

Beanstalk+Docker+JavaアプリでタイムゾーンをJSTに変更したかった日

Posted at

微妙に嵌ったのでメモ

  • AWS Elastic Beanstalk web applications
  • Multicontainer Docker
  • Java8 Spring Boot

.ebextensions で設定する方法

.ebextensions/timezone.config
# Dockerホスト(EC2インスタンス)のタイムゾーンを変更
commands:
  timezone:
    command: ln -f -s /usr/share/zoneinfo/Japan /etc/localtime
  • EC2インスタンスのタイムゾーン: 変更される
  • Dockerコンテナのタイムゾーン: 変更されない
  • Javaアプリのタイムゾーン: 変更されない

Dockerfile に RUN を記述する方法

Dockerfile
# ゲストOSのタイムゾーンを変更
RUN ln -f -s /usr/share/zoneinfo/Japan /etc/localtime
ENTRYPOINT ["java", "-jar", "helloworld.jar"]
  • EC2インスタンスのタイムゾーン: 変更されない
  • Dockerコンテナのタイムゾーン: 変更される
  • Javaアプリのタイムゾーン: 変更されない -> タイミングの問題?

Beanstalk環境プロパティに TZ=Asia/Tokyo を追加する方法

スクリーンショット.png

  • EC2インスタンスのタイムゾーン: 変更されない
  • Dockerコンテナのタイムゾーン: 変更されない
  • Javaアプリのタイムゾーン: 変更される

ENTRYPOINT で起動時引数を渡す方法

Dockerfile
# Javaアプリのタイムゾーンを変更
ENTRYPOINT ["java", "-Duser.timezone=Asia/Tokyo", "-jar", "helloworld.jar"]
  • EC2インスタンスのタイムゾーン: 変更されない
  • Dockerコンテナのタイムゾーン: 変更されない
  • Javaアプリのタイムゾーン: 変更される

※CMDで渡すとオプションの位置が悪い

Dockerfile
CMD ["-Duser.timezone=Asia/Tokyo"]
ENTRYPOINT ["java", "-jar", "helloworld.jar"]
  • EC2インスタンスのタイムゾーン: 変更されない
  • Dockerコンテナのタイムゾーン: 変更されない
  • Javaアプリのタイムゾーン: 変更されない
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0