首页 > 解决方案 > 如何在 Alpine linux docker 镜像中安装 oracle jdk11?

问题描述

我的 Dockerfile:

FROM frolvlad/alpine-glibc:latest

ADD jdk-11.0.6_linux-x64_bin.tar.gz /usr/java

ENV JAVA_HOME=/usr/java/jdk-11.0.6
ENV PATH=$JAVA_HOME/bin:$PATH

java -version当我在容器中 运行命令时,我得到了这个段错误:在此处输入图像描述

我怎么解决这个问题?

标签: javadockersegmentation-faultjava-11alpine

解决方案


frolvlad/alpine-glibc是支持 glibc 的 Alpine Linux 映像,jdk-11.0.6_linux-x64_bin.tar.gz很可能是大陆 Linux JDK glibc 构建。从理论上讲,这应该没问题,但可能存在导致这种情况的微妙 glibc 不兼容性。

如果您正在 Alpine 上寻找 Java 11,您可以获取 vanilla Alpine 3.11 映像,然后将openjdk11软件包安装在顶部:

sudo docker run -it alpine:3.11

# apk add openjdk11

# java -version
openjdk version "11.0.5" 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-alpine-r0)
OpenJDK 64-Bit Server VM (build 11.0.5+10-alpine-r0, mixed mode)

如果您特别需要 11.0.6,请安装存储库的最新openjdk11edge/community

apk add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community


推荐阅读