如何在Alpine linux docker image中安装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

当我在容器中运行命令时,我得到这个segfault:java -versionenter image description here

我该如何解决这个问题?


答案 1

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

如果你在Alpine上寻找Java 11,你可以抓住香草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


答案 2

从工作容器

FROM alpine:3.14

RUN  apk update \
  && apk upgrade \
  && apk add ca-certificates \
  && update-ca-certificates \
  && apk add --update coreutils && rm -rf /var/cache/apk/*   \ 
  && apk add --update openjdk11 tzdata curl unzip bash \
  && apk add --no-cache nss \
  && rm -rf /var/cache/apk/*

推荐