关于java服务构建打包成docker镜像问题 ?

关于java服务构建打包成docker镜像

1、构建命令

构建命令:
mvn clean install dockerfile:build -Ddockerfile.tag=${BUILD_TAG} dockerfile:push 

作用:
1、打包成jar包
2、build构建成docker镜像(根据变量传递标签生成版本号)
3、推送到docker镜像仓库

以下是这条命令的执行流程:

  1. clean:清理项目的输出目录(target 文件夹)。
  2. install:构建项目并将其安装到本地 Maven 仓库。
  3. dockerfile:build:根据项目的 Dockerfile 构建 Docker 镜像,并使用 -Ddockerfile.tag=${BUILD_TAG} 指定镜像的标签。
  4. dockerfile:push:将构建好的 Docker 镜像推送到配置的 Docker 仓库。

2、关于变量

上面的命令步骤有些运维工程师估计看不懂、下面大家可以看一下这篇博客:

https://blog.csdn.net/sanshizhang/article/details/104511353

3、主要讲解

看完大家估计就懂了、但是对 (JAR_FILE )估计还是有些疑问 我来主要讲解一下 JAR_FILE

下面是博主文中的截图

在 Maven 项目中,Dockerfile 是用于定义 Docker 镜像构建过程的脚本文件。在构建 Docker 镜像时,我们通常需要将构建好的 JAR 文件(Java 应用程序的打包文件)添加到 Docker 镜像中。

在提供的 Dockerfile 示例中,有一行代码如下:

dockerfile

ARG JAR_FILE

这行代码定义了一个名为 JAR_FILE 的参数,这个参数可以在构建 Docker 镜像时通过命令行指定。其目的是为了动态地指定要添加到 Docker 镜像中的 JAR 文件的路径。

接下来,Dockerfile 中有一行代码如下:

dockerfile

ADD ${JAR_FILE} /app.jar

这行代码的作用是将指定的 JAR 文件(由 JAR_FILE 参数指定)添加到 Docker 镜像中的 /app.jar 路径下。

为了在 Maven 构建过程中动态地指定 JAR_FILE 参数的值,我们需要在 pom.xml 文件中配置 dockerfile-maven-plugin 插件,并设置 buildArgs 属性。具体如下:

<build>
    <plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>dockerfile-maven-plugin</artifactId>
            <version>1.4.10</version>
            <executions>
                <execution>
                    <id>default</id>
                    <goals>
                        <goal>build</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <buildArgs>
                    <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>	 #这里是相对目录
                    			<!-- 这里是相对目录 -->
                </buildArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

在上述配置中,`` 标签内定义了一个 JAR_FILE 参数,其值设置为 ${project.build.finalName}.jar${project.build.finalName} 是 Maven 提供的一个内置属性,表示构建的 JAR 文件的最终名称(通常是 artifactId-version.jar 的形式)。

总结:

  • Dockerfile 中的 ARG JAR_FILE 定义了一个参数,用于指定要添加到 Docker 镜像中的 JAR 文件。
  • ADD ${JAR_FILE} /app.jar 将指定的 JAR 文件添加到 Docker 镜像中。
  • pom.xml 文件中的 `` 配置动态地指定了 JAR_FILE 参数的值,使其指向构建生成的 JAR 文件。

通过这种方式,我们可以在 Maven 构建过程中动态地将生成的 JAR 文件添加到 Docker 镜像中,从而实现自动化的 Docker 镜像构建。

posted @ 2025-04-17 14:21  姬高波  阅读(99)  评论(0)    收藏  举报