【发布时间】:2018-09-29 13:45:35
【问题描述】:
我习惯于像这样在我的 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
【问题讨论】:
-
你应该使用java hub hub.docker.com/_/java
-
@AbdullahG...我不想使用openjdk
-
我找到了解决办法
-
我猜 hash 是一个 url 参数。 'fb4372174a714e6b8c52526dc134031e' 是此网址中的哈希; download.oracle.com/otn-pub/java/jdk/10.0.1+10/….
标签: java docker java-8 dockerfile ubuntu-16.04