/bin/sh:jlink:未找到。命令“/bin/sh -c jlink”返回非零代码:127
/bin/sh: jlink: not found. command '/bin/sh -c jlink' returned a non-zero code: 127
使用的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?
请使用$JAVA_HOME/bin/jlink
。
由于历史原因,$JAVA_HOME/bin没有包含在PATH中,需要直接声明。
简单的答案是 jlink 不在 PATH 上,所以找不到。
如果将 运行 行更改为
RUN /usr/lib/jvm/zulu11/bin/jlink
那就可以找到了
但是,您在模块路径中使用通配符仍然出错。将其更改为
--module-path /usr/lib/jvm/zulu11/jmods/
并且 docker 命令将成功完成。
我遇到了同样的问题。这是图像中的问题 https://github.com/zulu-openjdk/zulu-openjdk/issues/66
我尝试使用版本 azul/zulu-openjdk-alpine:11.0.7-11.39.15 并且有效
使用的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?
请使用$JAVA_HOME/bin/jlink
。
由于历史原因,$JAVA_HOME/bin没有包含在PATH中,需要直接声明。
简单的答案是 jlink 不在 PATH 上,所以找不到。
如果将 运行 行更改为
RUN /usr/lib/jvm/zulu11/bin/jlink
那就可以找到了
但是,您在模块路径中使用通配符仍然出错。将其更改为
--module-path /usr/lib/jvm/zulu11/jmods/
并且 docker 命令将成功完成。
我遇到了同样的问题。这是图像中的问题 https://github.com/zulu-openjdk/zulu-openjdk/issues/66
我尝试使用版本 azul/zulu-openjdk-alpine:11.0.7-11.39.15 并且有效