java - 如何下载dockerfile中的特定版本?

标签 java docker dockerfile

我是编写 docker 的新手。我需要为其下载特定的java版本:

FROM alpine:3.9
RUN apk add bash && apk add openjdk8 && apk add R && apk add  perl

这是有效的,但是它下载了最新版本的 java - 1.8.0_212。 我需要特定版本1.8.0_171,所以我尝试了以下方法,但没有成功:

RUN apk add bash && apk add openjdk8=1.8.0_171 && apk add R && apk add  perl

有人知道如何获取具体版本吗?

最佳答案

试试这个

ARG JAVA_VERSION_MAJOR=8
ARG JAVA_VERSION_MINOR=131
ARG JAVA_VERSION_BUILD=11
ARG JAVA_PACKAGE=server-jre
ARG JAVA_SHA256_SUM=a80634d17896fe26e432f6c2b589ef6485685b2e717c82cd36f8f747d40ec84b
ARG JAVA_URL_ELEMENT=d54c1d3a095b4ff2b6607d096fa8016


# Download and unarchive Java
RUN apk add --update curl && \
  mkdir -p /opt 

RUN wget -c --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_URL_ELEMENT}/${JAVA_PACKAGE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz
RUN mv ${JAVA_PACKAGE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz java.tar.gz
RUN gunzip -c java.tar.gz | tar -xf - -C /opt && rm -f java.tar.gz && \
  ln -s /opt/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR} /opt/jdk

RUN apk add unzip
RUN curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip && \
  unzip jce_policy-8.zip -d /tmp && \
  cp /tmp/UnlimitedJCEPolicyJDK8/*.jar /opt/jdk/jre/lib/security/ && \
  rm -rf jce_policy-8.zip /tmp/UnlimitedJCEPolicyJDK8 && \
  apk del curl && \
  rm -rf /var/cache/apk/*

ENV JAVA_HOME /opt/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin

关于java - 如何下载dockerfile中的特定版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56108725/

相关文章:

android - 适用于 Android 的 Docker 容器 : Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)

Windows上的docker工具箱挂载文件

java - 如何刷新 Eclipse View 插件

java : Function objects as strategies

java - getresultlist - 查询正常,但列表中的数据重复

docker - 主机卷未安装在 'Docker-compose up' 上

docker - Docker-compose无法解析DNS来纠正服务

java - 如何在Swing中获取不包括 "System Tray"的桌面大小

docker - 在circleCI上运行docker-container测试

java - 如何在 Ubuntu 中的 Rocker/Shiny 容器中安装 Java