制作Docker镜像,用来编译OpenJDK11源码

本文详细介绍了如何利用Dockerfile制作Docker镜像来编译OpenJDK11源码,包括环境信息、所需材料、文件分割策略和Dockerfile的具体内容。镜像通过分步复制文件来减少因下载失败导致的重复工作,旨在简化OpenJDK11的编译过程。
摘要由CSDN通过智能技术生成

今天我们就来看下Docker镜像bolingcavalry/buildopenjdk11:0.0.2的制作过程,看看它做了哪些事情来简化下载过程;

参考文章

如果您打算在真实Linxu环境下编译OpenJDK11源码,可以参照《Ubuntu环境编辑OpenJDK11源码》

环境信息

  1. 操作系统:Ubuntu 16.04.5 LTS;

  2. Docker:18.06.1-ce;

准备材料

本次镜像用到了以下材料:

  1. Dockerfile:制作Docker镜像的脚本文件;

  2. cmd.sh:容器启动后执行的命令脚本;

  3. jdk10安装包,在编译OpenJDK11的时候,需要先装好jdk10作为bootjdk;

  4. source.list:linux源;

您可以选择直接从GitHub下载上述所有内容,地址和链接信息如下表所示:

| 名称 | 链接 | 备注 |

| :-- | :-- | :-- |

| 项目主页 | https://github.com/zq2599/buildopenjdk11 | 该项目在GitHub上的主页 |

| git仓库地址(https) | https://github.com/zq2599/buildopenjdk11.git | 该项目源码的仓库地址,https协议 |

| git仓库地址(ssh) | git@github.com:zq2599/buildopenjdk11.git | 该项目源码的仓库地址,ssh协议 |

要注意的问题

jdk10安装文件jdk-10_linux-x64_bin_ri.tar.gz有186兆,因此做成的镜像也很大,用户下载镜像时,一旦网络问题下载失败,docker会自动重试,此时是重新下载,这意味着之前的下载都白做了,为了缓解这个问题,可以把文件分割成多个小文件,这样虽然整体大小不变,但失败时重下载的文件是很小的,在linux环境执行以下命令,将文件分割成多个最大10兆的文件:

split -b 10m jdk-10_linux-x64_bin_ri.tar.gz jdk-10_linux-x64_bin_ri-

编写Dockerfile

Dockerfile内容如下,主要是安装必要的应用,另外关键的操作都有详细的注释,就不多说了:

#Docker image of source for OpenJDK

VERSION 0.0.1

Author: bolingcavalry

#基础镜像使用ubuntu:16.04

FROM ubuntu:16.04

#作者

MAINTAINER BolingCavalry zq2599@gmail.com

#定义boot jdk文件名

ENV BOOT_JDK_FILE_NAME jdk-10_linux-x64_bin_ri

#定义boot jdk安装目录

ENV BOOT_JDK_PATH /usr/lib/jvm

#定义boot jdk解压后的包名

ENV BOOT_JDK_PACKAGE_NAME jdk-10

#boot jdk的完全路径

ENV BOOT_JDK_HOME B O O T J D K P A T H / BOOT_JDK_PATH/ BOOTJDKPATH/BOOT_JDK_PACKAGE_NAME

#boot jdk相关的环境变量

ENV JAVA_HOME $BOOT_JDK_HOME

ENV JRE_HOME $BOOT_JDK_HOME/jre

ENV CLASSPATH .: B O O T J D K H O M E / l i b : BOOT_JDK_HOME/lib:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值