docker - 用curl安装java 8

时间:2017-05-31 05:43:11

标签: java docker

要在docker容器上安装java 8,我在dockerfile

中使用了这个命令
RUN curl -LO 'http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.rpm'
-H 'Cookie: oraclelicense=accept-securebackup-cookie' RUN rpm -i jdk-8u111-linux-x64.rpm RUN rm jdk-8u111-linux-x64.rpm

它工作了一段时间,但现在这个链接已不再可用。这有可替换的网址吗?或者在docker上安装java 8的简单方法?

5 个答案:

答案 0 :(得分:0)

这取决于您使用的操作系统,所以我希望您展示自己的操作系统。例如,Ubuntu用户为Oracle Java准备了他们的ppa存储库。

RUN add-apt-repository ppa:webupd8team/java
RUN apt-get update
RUN apt-get install oracle-java8-installer

答案 1 :(得分:0)

似乎Oracle已经更改了下载授权,浏览器使用的实际链接是http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm?AuthParam=1496223138_c808095f7637d83147c37d69d3a87e7a,但这不能与curl一起使用。

我无法解决从Oracle下载的问题,但我使用official OpenJDK image作为基础并且没有发现问题。

答案 2 :(得分:0)

如果openjdk对您没问题,可以使用

RUN apt-get install -y openjdk-8-jdk
与oracle相比,openjdk不需要用户确认。

如果您只需要Java运行时,请考虑openjdk-8-jre

答案 3 :(得分:0)

https://hub.docker.com/r/sftech/java

改编我的Dockerfile
FROM ubuntu

ENV JAVA_VERSION=8

RUN echo oracle-java${JAVA_VERSION}-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections
RUN apt-get update \
 && apt-get install -y software-properties-common \
 && apt-add-repository ppa:webupd8team/java \
 && apt-get update \
 && apt-get install -y oracle-java${JAVA_VERSION}-installer \
 && update-java-alternatives -s java-${JAVA_VERSION}-oracle \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/*

答案 4 :(得分:0)

为什么要在图像/容器中安装java,当你可以免费获得java:8 image from the Docker store时。许可证要求与oracle.com网站上的java / jdk下载安装完全相同。