java 使用 ubuntu 映像在 dockerfile 中安装 JDK 8 更新 172

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/49914574/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 10:29:11  来源:igfitidea点击:

Install JDK 8 update 172 in dockerfile with ubuntu image

javadockerjava-8dockerfileubuntu-16.04

提问by doer_uvc

I am used to download java in my dockerfile like this :

我习惯在我的 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}

Apparently, oracle has released new update 8u172and download within dockerfile is failing with ERROR 404: Not Found.

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

My question is , how do I find out JAVA_DOWNLOAD_HASHvariable ?

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

Rest of variable values are clear to me :

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

JAVA_VERSION_MAJOR 8
JAVA_VERSION_MINOR 172
JAVA_VERSION_BUILD 11

Please note that my base docker image is : ubuntu:16.04

请注意,我的基本泊坞窗图像是: ubuntu:16.04

My installation of java within ubuntu is inspired from here

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

回答by doer_uvc

I think oracle has fixed broken web8upd.

我认为 oracle 已经修复了broken web8upd.

So now dockerfile specified on githubworks perfectly !

所以现在github上指定的dockerfile完美运行!

Just copy-pasting same dockerfile with some modifications :

只需复制粘贴相同的 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

Please note : rm -rf /var/lib/apt/lists/*will remove all lists fetched by apt-get update.

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

So if you want to install more things after installing Java, remove rm -rf /var/lib/apt/lists/*otherwise you have to run apt-get updateagain.

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