java - 从头开始为 JRE 创建 Docker 镜像

标签 java docker dockerfile

我正在尝试在没有任何操作系统的情况下使用 JRE 创建图像。我试过这个 Dockerfile,但它不起作用。

    FROM openjdk:11.0.1-jdk-oraclelinux7 as JDK
    RUN jlink --no-header-files --no-man-pages --add-modules java.base,java.desktop,java.logging,java.sql --output /jre

    FROM scratch
    #FROM oraclelinux:7-slim
    COPY --from=JDK /jre /jre
    ARG JAR_FILE
    COPY ${JAR_FILE} /app.jar
    CMD ["/jre/bin/java", "-jar", "/app.jar"]

我收到以下错误:

    standard_init_linux.go:190: exec user process caused "no such file or directory"

如果我用 oraclelinux 替换 scratch,它工作正常。任何我不能使用 scratch 的线索。使用 scratch 的原因是为了减小图像的大小。

感谢任何帮助。

最佳答案

热点源目前不支持静态链接。参见 http://mail.openjdk.java.net/pipermail/hotspot-dev/2013-September/010810.html了解更多信息。

关于java - 从头开始为 JRE 创建 Docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55416831/

相关文章:

java - 使用 java 初始化 JavaScript 变量

docker - GOMAXPROCS 在不同平台和容器内部是如何确定的?

django - Django静态文件未复制到Docker容器上的saticfiles文件夹中

docker - 如何在启动时在 docker 容器中启动服务

java - 如何缩放 .JPEG 以适应位于 GridView 中的按钮?

Java 三元运算符似乎始终将整数转换为 int

java - 在 JMeter 的 BeanShell 采样器中将字符串解析为整数

python -/bin/sh : 1: python: not found while running docker container

docker - 使用Docker加载内存镜像?

linux - 用于在 Linux 上运行 .net core 控制台应用程序的 Dockerfile(不是独立的)