docker工人 – 用curl安装java 8

为了在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 

它工作了一段时间,但现在这个链接不再是可用的。 有可replace的url吗? 或简单的方法来停止在docker上的Java 8?

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

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

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

我从Oracle下载的问题没有解决办法,但我使用官方的OpenJDK图像作为基地,没有发现问题。

如果openjdk适合你,你可以使用

 RUN apt-get install -y openjdk-8-jdk 

与oracle相比,openjdk不需要用户的确认。

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

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/* 

为什么要在图像/容器中安装java,何时可以从Docker商店免费获取java:8图像 。 许可证要求与oracle.com网站上的java / jdk下载安装完全相同。