如何使用SDKMAN以非交互方式安装最新的Java版本?

6
在我们的CI/CD环境中,我们有几个使用sdkman预安装Java的Docker镜像。但是存在一个小问题,版本号经常变化,导致我们的Docker构建失败,因为缺少包版本。例如:
sdk install java 8.0.232-zulu

Stop! java 8.0.232-zulu is not available. Possible causes:
 * 8.0.232-zulu is an invalid version
 * java binaries are incompatible with Linux64
 * java has not been released yet

有没有一种方式在特定的“flavour”和版本中非交互式地安装最新的Java?

类似于: sdk install java 8-zulu-latest

PS。目前,我们使用(丑陋的)解决方法: sdk install java $(sdk list java | grep -e 8\.0\..* -zulu [^fx] | sed -r s /^。*8 / 8 /)

1个回答

2
一种方法是不依赖于SDKMAN!。
由于您处于Docker环境下,最好将镜像大小保持在最小限度。
以下是在alpine下安装最新的zulu JDK的示例:

FROM alpine as base

# install zulu jdk
RUN apk --update --no-cache add curl \
    && curl https://cdn.azul.com/public_keys/alpine-signing@azul.com-5d5dc44c.rsa.pub > /etc/apk/keys/alpine-signing@azul.com-5d5dc44c.rsa.pub \
    && echo "https://repos.azul.com/zulu/alpine" >> /etc/apk/repositories \
    && apk --update --no-cache add zulu8-jdk \
    && apk del curl


这将下载curl、产品签名密钥并将zulu alpine存储库添加到apk存储库列表中,安装最新可用的zulu8-jdk,然后删除curl。
请注意,您还可以在名称中替换JDK版本。例如,使用zulu11-jdk以安装JDK 11。
一些有用的zulu安装参考资料:

https://docs.azul.com/zulu/zuludocs/ZuluUserGuide/InstallingZulu/InstallOnLinuxUsingAPKRepository.htm

https://docs.azul.com/zulu/zuludocs/ZuluUserGuide/PrepareZuluPlatform/AttachAPKRepositoryAlpineLinux.htm


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接