LoginSignup
3
1

More than 5 years have passed since last update.

Rundeck/dockerでタイムゾーンを変更

Posted at

手早く言うと

jjethwa/rundeckを使うときは、

TZ: Asia/Tokyo
RDECK_JVM: -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Tokyo

と設定することでJSTで使うことができます

説明

RundeckをDockerで使う場合、jjethwa/rundeck が定番になっています。

普通にこのコンテナを起動すると、デフォルトのタイムゾーンで立ち上がってしまうので、タスク実行時刻を02:00(夜中二時)を指定すると、お昼頃にタスクが実行されてしまいます。

02:00JST = 11:00UST

で、なんとかすべく 「Rundeck timezone」でググると、クラスメソッドさんのこの記事が出てきます。

Rundeck: 任意のタイムゾーン設定によるサーバ稼働を試してみる | Developers.IO

簡単にまとめると、OS上でtimezoneを設定して、Rundeck起動時の引数に-Duser.timezone=Asia/Tokyo付けてあげればいけるよ、ということです。

jjethwa/rundeckの場合、RDECK_JVMという引数が用意されているので、起動時の引数は外部からかんたんに設定することができます。

けれども、OSのタイムゾーンの方は、

 cp /usr/share/zoneinfo/Japan /etc/localtime 

とファイルを上書きすることになっていて、これをdockerでやろうと思うと、どっかにスクリプトを仕込まないといけなくて、どうにも面倒くさい感じです。

ためしに、TZ環境変数をわたしてみると、これだけでも一応動いてくれるようです。
例えば午前11時過ぎ(JST)に02:00のタスクを作成すると、

Jobs_-_default.png

14時間後ということで、正しく夜中に実行してくれます

docker-compose.yml

ということで、JSTで起動するためのdocker-compose.ymlをgistに上げておきました。

start jordan/rundeck on JST timezone.

docker-compose up -d

で起動してあげれば、RundeckをJSTで起動することができます。

3
1
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
3
1