Closed usagiga closed 2 years ago
sed や perl のようなもので置き換えるのがいい…のではないかと…? (使えればなんでもいいという判断であり、ちゃんと比較したわけではありません)
闇ですが、たとえばこんな風にやれば動きます
RUN JDK_PACKAGE=$(sed -Ee 's/^1.([0-9]|1[0-6])(.[0-9]+)?$/openjdk8/g' <(echo '1.9.128')); \
JDK_PACKAGE=$(sed -Ee 's/^1.17(.[0-9]+)?$/openjdk16/g' <(echo ${JDK_PACKAGE})); \
JDK_PACKAGE=$(sed -Ee 's/^1.18(.[0-9]+)?$/openjdk17/g' <(echo ${JDK_PACKAGE})); \
JDK_PACKAGE=$(sed -Ee 's/^1.19(.[0-9]+)?$/openjdk17/g' <(echo ${JDK_PACKAGE})); \
apk add ${JDK_PACKAGE}
動かないのは 1.19
のようなバグフィックスが存在しないバージョンと、 1.16
以前のみだった。
このような条件を正しく記述するなら、素直に ERE を使ったほうがいいだろう。
Dockerfile 内にあるバージョン判定処理で使われている、
expr
コマンドが動いていません。以前動作確認したときは動いていたような気がするのですが……。