/ bin / sh:jlink:找不到。命令'/ bin / sh -c jlink'返回非零代码:127

时间:2020-02-19 06:45:39

标签: dockerfile jlink azul-zulu

使用的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?

3 个答案:

答案 0 :(得分:2)

简单的答案是jlink不在PATH上,所以找不到。

如果将RUN行更改为

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

然后可以找到它。

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

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

,并且docker命令将成功完成。

答案 1 :(得分:1)

请使用$JAVA_HOME/bin/jlink

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

答案 2 :(得分:1)

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

中的问题

我尝试使用azul / zulu-openjdk-alpine版本:11.0.7-11.39.15并成功