我的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
时,我得到以下段错误:
我该如何解决这个问题?
答案 0 :(得分:10)
frolvlad/alpine-glibc
是启用了glibc的Alpine Linux映像,而jdk-11.0.6_linux-x64_bin.tar.gz
可能是大陆Linux JDK glibc构建。从理论上讲,这应该没问题,但是可能存在细微的glibc不兼容性导致这种情况。
如果您正在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,请安装openjdk11
存储库的最新edge/community
软件包:
apk add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
答案 1 :(得分:1)
来自工作容器
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/*