Reputation: 331
My 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
When I run the command java -version
in the container, I get this segfault:
How can I solve this problem?
Upvotes: 33
Views: 102070
Reputation: 121
From a working container
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/*
Upvotes: 12
Reputation: 18541
frolvlad/alpine-glibc
is a glibc-enabled Alpine Linux image, and jdk-11.0.6_linux-x64_bin.tar.gz
is likely a mainland Linux JDK glibc build. In theory, this should be fine, but there may be subtle glibc incompatibilities that cause this.
If you're looking for Java 11 on Alpine, you could just grab the vanilla Alpine 3.11 image, then install the openjdk11
package on top:
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)
If you need 11.0.6 specifically, install the latest openjdk11
package of the edge/community
repository instead:
apk add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
Upvotes: 50