1.下载jdk-17
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
2.jre制作
由于jdk的体积比较大,我们选择jre来作为运行环境,jdk1.8及以前的版本,都是有jre的,但是jdk9以后的版本不在提供jre需要自己制作。
jlink是通过按模块打包的,但是由于目前很多库还不是按模块打包的,所以我们无法知道项目里面都用了那些模块。只好将所有的模块进行打包。这样避免以后出现缺失模块导致应用报错的问题。
解压 tar.gz后的目录
在 jdk-17.0.6 目录下执行命令生成 jre17
bin/jlink --module-path jmods --add-modules ALL-MODULE-PATH --compress=2 --strip-debug --output jre17
- Dockerfile编写
在 jdk-17.0.6 目录下编写 Dockerfile文件,同时
将 /usr/share/zoneinfo/Asia/Shanghai 拷贝至当前目录下
FROM ubuntu:latest
MAINTAINER lin
#更新软件源
RUN apt-get update
#安装字体支持
RUN apt-get install fontconfig -y
#清理缓存
RUN apt-get clean
# 将/usr/share/zoneinfo/Asia/Shanghai拷贝到本地目录
COPY ./Shanghai /etc/localtime
#setup language 解决中文乱码
#设置中文支持
ENV LANG C.UTF-8
#解压jdk并删除lib目录下的源码
COPY ./jre17 /usr/local/jre17
#授执行权限
RUN chmod -R 750 /usr/local/jre17/bin
#setup java env
ENV JAVA_HOME=/usr/local/jre17
ENV PATH=$PATH:$JAVA_HOME/bin
ENV CALSSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
4.构建
docker build -t jdk17-orcle-ubuntu:jre-17 .