如何在Ubuntu镜像的Dockerfile中安装JDK 8 Update 172?
没问题,我来帮你搞定在Ubuntu镜像的Dockerfile里安装JDK 8 Update 172的配置,直接给你适配好的代码和实用细节:
在Ubuntu镜像的Dockerfile中安装JDK 8 Update 172
你可以基于原有的Dockerfile结构,替换对应版本的参数并补充Ubuntu环境需要的依赖处理,下面是完整的适配代码:
# 建议指定Ubuntu具体版本(如ubuntu:20.04),保证构建稳定性 FROM ubuntu:latest # 配置JDK 8 Update 172的版本参数 ENV JAVA_VERSION_MAJOR 8 ENV JAVA_VERSION_MINOR 172 ENV JAVA_VERSION_BUILD 11 ENV JAVA_DOWNLOAD_HASH a8a305e48b78463e9170b5e05297b39d RUN apt-get update && apt-get install -y --no-install-recommends wget \ # 创建JDK安装目录 && mkdir -p /usr/lib/jvm \ && cd /usr/lib/jvm \ # 下载Oracle JDK,必须携带授权Cookie才能正常下载 && 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 -xzf 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 \ # 配置系统全局的java/javac命令指向 && update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR}/bin/java 1 \ && update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR}/bin/javac 1 \ # 清理apt缓存和临时依赖,进一步压缩镜像大小 && apt-get purge -y --auto-remove wget \ && apt-get clean && rm -rf /var/lib/apt/lists/*
几个关键细节说明:
- Ubuntu依赖处理:Ubuntu基础镜像默认没有
wget工具,所以先通过apt安装,最后又清理掉它来节省镜像空间 - 版本参数对应:JDK 8u172的官方版本标识是
8u172-b11,所以对应的BUILD参数是11,下载哈希值是官方提供的校验值,确保下载包的完整性 - Oracle授权验证:必须携带
oraclelicense=accept-securebackup-cookie请求头,否则Oracle服务器会拒绝下载请求 - 镜像优化:使用
--no-install-recommends避免安装不必要的依赖,最后清理apt缓存和临时工具,能大幅减小镜像体积
如果是测试环境不需要极致压缩,也可以简化掉清理部分,保留wget工具,但生产环境更推荐上面的优化版本。
内容的提问来源于stack exchange,提问作者Utsav Chokshi




