Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install oracle jdk11 in Alpine linux docker image?

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: enter image description here

How can I solve this problem?

like image 465
DWG24 Avatar asked Feb 01 '20 07:02

DWG24


People also ask

How do I download and install jdk11?

Downloading the JDK InstallerAccess Java SE Downloads page and click Accept License Agreement. Under the Download menu, click the Download link that corresponds to the .exe for your version of Windows. Download the file jdk-11.

How install Openjdk on Alpine Linux?

openjdk is in the community repo. It seems that you didn't enable community repo. Go ahead and first enable community repo by uncommenting the community repo in /etc/apk/repositories , then run apk update then execute apk add openjdk11 . Save this answer.


2 Answers

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

like image 161
valiano Avatar answered Sep 16 '22 11:09

valiano


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/*
like image 37
Romenique Zedeck Avatar answered Sep 16 '22 11:09

Romenique Zedeck