java - 使用 ubuntu 镜像在 dockerfile 中安装 JDK 8 update 172

标签 java docker java-8 dockerfile ubuntu-16.04

我习惯像这样在我的 dockerfile 中下载 java:

# Install Java
ENV JAVA_VERSION_MAJOR 8
ENV JAVA_VERSION_MINOR 162
ENV JAVA_VERSION_BUILD 12
ENV JAVA_DOWNLOAD_HASH 0da788060d494f5095bf8624735fa2f1
RUN mkdir -p /usr/lib/jvm \
    && cd /usr/lib/jvm \
    && wget -nv --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-b${JAVA_VERSION_BUILD}/${JAVA_DOWNLOAD_HASH}/jdk-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz \
    && tar xf jdk-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz \
    && rm jdk-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz \
    && update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR}/bin/java" 1
ENV JAVA_HOME /usr/lib/jvm/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR}

显然,oracle 发布了新的更新8u172并且在 dockerfile 中下载失败并显示 ERROR 404: Not Found.

我的问题是,如何找到 JAVA_DOWNLOAD_HASH 变量?

其余变量值对我来说很清楚:

JAVA_VERSION_MAJOR 8
JAVA_VERSION_MINOR 172
JAVA_VERSION_BUILD 11

请注意,我的基础 docker 镜像是:ubuntu:16.04

我在 ubuntu 中安装 java 的灵感来自 here

最佳答案

我认为 oracle 已经修复了损坏的 web8upd

所以现在 dockerfile 指定了 on github完美运行!

只需复制粘贴相同的 dockerfile 并进行一些修改:

FROM ubuntu:16.04

# To solve add-apt-repository : command not found
RUN apt-get -y install software-properties-common

# Install Java
RUN \
  echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \
  add-apt-repository -y ppa:webupd8team/java && \
  apt-get update && \
  apt-get install -y oracle-java8-installer --allow-unauthenticated && \
  rm -rf /var/lib/apt/lists/* && \
  rm -rf /var/cache/oracle-jdk8-installer


# Define commonly used JAVA_HOME variable
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle

请注意:rm -rf/var/lib/apt/lists/* 将删除 apt-get update 获取的所有列表。

所以如果你想在安装 Java 之后安装更多的东西,删除 rm -rf/var/lib/apt/lists/* 否则你必须运行 apt-get update 再次。

关于java - 使用 ubuntu 镜像在 dockerfile 中安装 JDK 8 update 172,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49914574/

相关文章:

java - Node.js http服务器并发问题

java - 在 Jboss 上使用 CMS 和 Luna Hsm 解密 p7m

python - 如何使用 docker Docker SDK for Python 获取容器大小

java - 如何根据子对象字段获取父对象

java - apache-camel throttle 无法按预期工作

java - 在Java中查找URI对应的协议(protocol)

ubuntu - Docker 不下载图像(注册表连接问题)

node.js - 我的express.js hello世界和Docker安装程序在做什么?

java - 如何通过 Java 8 中的值过滤 map ?

java - javaFX 8 中的投票栏