メモ程度に。
現象
脳死して centos 上の java8 環境を作るときに webdizz/centos-java8
既存イメージを利用した際にコケた。こういうのサボらないほうがいいね。理解していないものを使っちゃだめだなーと。
以下は詳細なJavaのバージョン
# java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
digdag push
とかするときにタイムスタンプ付きのログが出るんだが、そのときに Javaの 時間関係のライブラリのAPIがうまく動かないことが原因だったぽい。
Unable to obtain Instant
なんちゃら、、、っていうエラーが発生していた。
解決法
ちなみに以下のバージョンでは問題なく動いた。
# java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)
Dockerfile での install は 以下のような感じ
FROM centos:latest
RUN \
yum update -y && yum install -y \
java-1.8.9-openjdk \
java-1.8.0-openjdk-devel
Java には問題がなくて、 JAVA_HOME
の設定が間違っているのかと思って再度設定し直して試してみたが結局再現したのでやっぱりjavaのバージョンがよくなかったぽい。
他の解決策もあるかもなので こうだよってのあったら教えてほしいです。
追記
コメント欄で教えていただいた公式ドキュメントの記述によると、digdagの実行にはJava8 u72以降が必要とのこと。
問題が発生していたときの Java の バージョンは 調べるとたしかに u72 よりも古いものでした。