【问题标题】:/bin/sh: jlink: not found. command '/bin/sh -c jlink' returned a non-zero code: 127/bin/sh: jlink: 未找到。命令“/bin/sh -c jlink”返回非零代码:127
【发布时间】:2020-06-03 06:37:46
【问题描述】:

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

【问题讨论】:

    标签: dockerfile jlink azul-zulu


    【解决方案1】:

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

    如果将 RUN 行更改为

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

    那么就可以找到了。

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

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

    docker 命令将成功完成。

    【讨论】:

      【解决方案2】:

      请使用$JAVA_HOME/bin/jlink

      由于历史原因 $JAVA_HOME/bin 没有包含在 PATH 中,所以需要直接声明。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2015-10-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-05
          • 2019-02-02
          • 2019-10-09
          • 2021-03-19
          相关资源
          最近更新 更多