2

使用的 dockerfile -

FROM azul/zulu-openjdk-alpine:11 as jdk

RUN jlink \
    --module-path /usr/lib/jvm/*/jmods/ \
    --verbose \
    --add-modules java.base,jdk.unsupported,java.sql,java.desktop \
    --compress 2 \
    --no-header-files \
    --no-man-pages \
    --output /opt/jdk-11-minimal

FROM alpine:3.10
ENV JAVA_HOME=/opt/jdk-11-minimal
ENV PATH=$PATH:/opt/jdk-11-minimal/bin
COPY --from=jdk /opt/jdk-11-minimal /opt/jdk-11-minimal

为什么在 azul/zulu-openjdk-alpine:11 中找不到 jlink?

4

3 回答 3

4

简单的答案是 jlink 不在 PATH 上,因此无法找到。

如果将 RUN 行更改为

RUN /usr/lib/jvm/zulu11/bin/jlink

然后就可以找到了。

但是,在模块路径中使用通配符仍然会出错。将此更改为

--module-path /usr/lib/jvm/zulu11/jmods/

并且 docker 命令将成功完成。

于 2020-02-19T11:44:48.293 回答
2

请使用$JAVA_HOME/bin/jlink.

由于历史原因 $JAVA_HOME/bin 未包含在 PATH 中,因此您需要直接声明它。

于 2020-02-19T11:43:04.173 回答
1

我有同样的问题。这是图像中的一个问题https://github.com/zulu-openjdk/zulu-openjdk/issues/66

我尝试使用版本 azul/zulu-openjdk-alpine:11.0.7-11.39.15 并且它有效

于 2020-07-16T13:14:04.093 回答