手早く言うと
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のタスクを作成すると、
14時間後ということで、正しく夜中に実行してくれます
docker-compose.yml
ということで、JSTで起動するためのdocker-compose.ymlをgistに上げておきました。
start jordan/rundeck on JST timezone.
docker-compose up -d
で起動してあげれば、RundeckをJSTで起動することができます。