手摸手系列之Linux下根据自己的jdk包构建docker镜像

发布于:2024-08-20 ⋅ 阅读:(120) ⋅ 点赞:(0)

项目在本地导出PDF文件正常,部署到Linux服务器docker容器中导出就报错,百撕不得姐,经查,docker依赖的openjdk版本是8u112版本,而我本地是8u421版本,那就升级jdk的小版本试试。

在docker的中央仓库[点我直达]没有发现8u421的镜像,于是想到自己build一个jdk镜像。以下是步骤。

1. 从oracle官网下载[Download the Latest Java LTS Free]下载jdk-8u421的包

请添加图片描述

2. 新建目录/usr/local/jdk8u421,并将包拖放到此目录下。

请添加图片描述

3. 同级目录下创建一个Dockerfile来定义镜像内容,内容如下:

# 使用CentOS作为基础镜像
FROM centos:centos7

# 将JDK压缩包复制到镜像中
COPY jdk-8u421-linux-x64.tar.gz /tmp/

# 解压JDK压缩包到/opt目录
RUN mkdir -p /opt/java && \
    tar -xzf /tmp/jdk-8u421-linux-x64.tar.gz -C /opt/java --strip-components=1

# 设置环境变量
ENV JAVA_HOME=/opt/java
ENV PATH=$PATH:$JAVA_HOME/bin

# 清理工作
RUN rm /tmp/jdk-8u421-linux-x64.tar.gz && \
    yum clean all && \
    rm -rf /var/cache/yum/*

4. 构建镜像:在包含Dockerfile的目录中打开终端,运行以下命令来构建镜像

docker build -t jdk8:8u421 .

这里,-t标志用于给镜像命名(在这个例子中是jdk8),8u421是标签,.表示Dockerfile在当前目录。

5. 运行容器:使用以下命令来运行一个基于你的新镜像的容器,并验证Java版本:

docker run --name jdk8u421 -it jdk8:8u421 java -version

请添加图片描述

在portainer中查看容器:

请添加图片描述

如何使用?

在自己的业务中使用构建的JDK 8u421镜像作为基础镜像:

FROM jdk8:8u421
WORKDIR /app

COPY ./*.jar /app
COPY ./application.yml /app/application.yml

# 设置JVM内存参数
ENV JAVA_OPTS="-Xmx512m -Xms512m"

ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /app/jeecg-module-business-start.jar"]

网站公告

今日签到

点亮在社区的每一天
去签到