java如何构建镜像
使用 Dockerfile 构建 Java 镜像
创建一个名为 Dockerfile 的文件,内容如下:
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY target/myapp.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
构建镜像
在包含 Dockerfile 的目录中运行以下命令:
docker build -t my-java-app .
使用 Maven 插件构建镜像
在 pom.xml 中添加以下插件配置:

<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.13</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>my-java-app</repository>
<tag>latest</tag>
</configuration>
</plugin>
运行以下命令构建镜像:
mvn clean package dockerfile:build
使用 Jib 插件构建镜像
在 pom.xml 中添加以下插件配置:

<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<to>
<image>my-java-app</image>
</to>
</configuration>
</plugin>
运行以下命令构建镜像:
mvn compile jib:build
多阶段构建优化镜像大小
使用多阶段构建可以减少最终镜像大小:
FROM openjdk:17-jdk-slim AS builder
WORKDIR /app
COPY . .
RUN ./mvnw package
FROM openjdk:17-jre-slim
WORKDIR /app
COPY --from=builder /app/target/myapp.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]






