首先下载JDK 我的是jdk-17_linux-x64_bin.tar.gz
然后解压进入jdk目录:执行
bin/jlink --module-path jmods --add-modules java.base,java.prefs,java.xml.crypto,jdk.hotspot.agent,jdk.internal.vm.compiler.management,jdk.jpackage,jdk.net,java.compiler,java.rmi,java.xml,jdk.httpserver,jdk.jartool,jdk.jshell,jdk.nio.mapmode,java.datatransfer,java.scripting,jdk.accessibility,jdk.javadoc,jdk.jsobject,jdk.random,java.desktop,java.security.jgss,jdk.attach,jdk.jcmd,jdk.jstatd,jdk.sctp,java.instrument,java.security.sasl,jdk.charsets,jdk.internal.ed,jdk.jconsole,jdk.localedata,jdk.security.auth,java.logging,java.se,jdk.compiler,jdk.internal.jvmstat,jdk.jdeps,jdk.management.agent,jdk.security.jgss,java.management,java.smartcardio,jdk.crypto.cryptoki,jdk.internal.le,jdk.jdi,jdk.management.jfr,jdk.unsupported.desktop,java.management.rmi,java.sql,jdk.crypto.ec,jdk.internal.opt,jdk.jdwp.agent,jdk.management,jdk.unsupported,java.naming,java.sql.rowset,jdk.dynalink,jdk.internal.vm.ci,jdk.jfr,jdk.naming.dns,jdk.xml.dom,java.net.http,java.transaction.xa,jdk.editpad,jdk.internal.vm.compiler,jdk.jlink,jdk.naming.rmi,jdk.zipfs --output jre-17.0.2
或者

jlink的路径\jlink.exe --module-path jmods存放路径 --add-modules  ALL-MODULE-PATH  --output  JRE输出路径
1)jmod路径任意,最简单的JRE自然是将Java目录下的jmods文件夹所有jmod全部打包
2)ALL-MODULE-PATH 该参数的意思是:不需要一个一个输要打包jmod名称,会自动将jmods文件夹下所有jmods都打包进JRE中
我的是:
(可以先进入jmods目录删除试验性质的模块 rm-rf jdk.incubator*)
bin/jlink --module-path jmods --add-modules  ALL-MODULE-PATH  --output  jre-17.0.8

制作Docker镜像
以centos:7为baseImg,Dockfile文件中内容为

# 指定基础镜像,并且必须是第一条指令
FROM centos:7
# 指明镜像的作者和电子邮件
MAINTAINER Vick "yuntop@qq.com"
# 在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建该目录
WORKDIR /usr/local/java
# 将jre安装包复制到镜像中(ADD与COPY的区别:ADD复制并解压,COPY仅复制)下面用的是绝对路径
ADD jre-17_linux-x64.tar.gz /usr/local/java
# 配置环境变量
ENV JAVA_HOME=/usr/local/java/jre-17.0.2
ENV CLASSPATH=.:$JAVA_HOME/lib/jrt-fs.jar
ENV PATH=$PATH:$JAVA_HOME/bin
# 容器启动时需要执行的命令
CMD ["java", "-version"]

执行docker build 生成镜像

docker build -f ./Dockerfile_jre -t centos-jre:17.0.2 .
docker build -f ./Dockerfile_jre_u -t ubuntu/jre:22.04-17.0.8 .
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐