docker自行编译jdk镜像

docker 编译jdk镜像


在使用docker镜像过程中,会发现有些镜像总不那么如意,比如jdk8u111以前的版本没有考虑到容器资源的情况,而新版本的镜像又是使用debian或者unbutu、centOS等很大的系统底层镜像,这时候需要我们执行构建核实的jdk镜像,话不多说,下面详细描述

镜像说明

  • 系统使用alpine镜像,这是一个5m左右的系统镜像,最小的linux系统
  • jdk采用jdk8的最新安装压缩包,后续也可以更换成jdk10
  • 需要在容器中安装glib支持java使用

准备内容

  • jdk-8u181-linux-x64.tar.gz
  • Dockerfile

镜像构建

  1. 编写dockerfile,dockerfile文件内容如下:

    FROM alpine:3.7
    ADD jdk-8u181-linux-x64.tar.gz /usr/local/
    RUN echo http://mirrors.ustc.edu.cn/alpine/v3.7/main > /etc/apk/repositories &&
    echo http://mirrors.ustc.edu.cn/alpine/v3.7/community >> /etc/apk/repositories
    RUN apk update && apk upgrade
    RUN apk --no-cache add ca-certificates &&
    wget --no-check-certificate -q -O /etc/apk/keys/sgerrand.rsa.pub https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.27-r0/sgerrand.rsa.pub &&
    wget --no-check-certificate https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.27-r0/glibc-2.27-r0.apk &&
    apk add glibc-2.27-r0.apk
    ENV JAVA_HOME=/usr/local/jdk1.8.0_181
    ENV JAVA_TOOL_OPTIONS="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
    ENV CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/toos.jar
    ENV PATH=.: J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
    CMD [“jshell”, “-J-XX:+UnlockExperimentalVMOptions”,
    “-J-XX:+UseCGroupMemoryLimitForHeap”,
    “-R-XX:+UnlockExperimentalVMOptions”,
    “-R-XX:+UseCGroupMemoryLimitForHeap”]
    CMD [“java”,"-version"]

  2. 把dockerfile文件和jdk-8u181-linux-x64.tar.gz放在同一目录

  3. 编译镜像文件

    docker image build -t jdk-8-alpine:1.8.181 -f jdk-8-alpine.Dockerfile .

  4. 运行镜像文件,查看java版本

    docker run -ti jdk-8-alpine:1.8.181 sh
    java -version

  5. 在容器内看到下面内容则构建成功

    Picked up JAVA_TOOL_OPTIONS: -XX:+UnlockExperimentalVMOptions - XX:+UseCGroupMemoryLimitForHeap
    java version “1.8.0_181”
    Java™ SE Runtime Environment (build 1.8.0_181-b13)
    Java HotSpot™ 64-Bit Server VM (build 25.181-b13, mixed mode)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值