Docker 构建 Java 应用镜像

JDK 21 镜像

  • 创建 Dockerfile 文件(必须与 Maven 项目中的 target 目录处于一个父目录下),并写入以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FROM registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/java:21-anolis

MAINTAINER clay<clay@gmail.com>

WORKDIR /code-generator

ARG JAR_FILE=target/code-generator.jar

COPY ${JAR_FILE} app.jar

EXPOSE 8006

ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"

CMD sleep 30; java $JAVA_OPTS -jar app.jar
  • 特别注意,请自行更改 code-generator 为对应的 Maven 项目(模块)名称

JDK 11 镜像

  • 在任意目录下创建 Dockerfile 文件,并写入以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
FROM openjdk:11.0.9

MAINTAINER clay<clay@gmail.com>

ENV work_path /app

WORKDIR $work_path

EXPOSE 8004

ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"

CMD sleep 30; java $JAVA_OPTS -jar /app/code-generator.jar
  • 特别注意,请自行更改 code-generator 为 Java 应用的名称,并在容器启动时,将宿主机内的 xxx.jar 文件通过数据卷的方式挂载到容器内的 /app 目录下