java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Maven项目如何打包成Docker镜像

Maven项目如何打包成Docker镜像?三种常用插件详解

作者:贝克街的小码农

想知道如何将Maven项目高效打包成Docker镜像吗?本文详细对比了docker-maven-plugin、jib-maven-plugin和spring-boot-maven-plugin三种方式,手把手教你从配置pom.xml到运行容器,帮你根据需求轻松选择最适合的Maven打包Docker镜像方案

使用 Maven 将项目打包成 Docker 镜像通常需要结合 Dockerfile 和 Maven 插件(如 docker-maven-pluginjib-maven-plugin)。

1. 准备工作

2. 使用docker-maven-plugin打包 Docker 镜像

(1)在pom.xml中添加插件

<build>
    <plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.2.2</version>
            <configuration>
                <imageName>${project.artifactId}:${project.version}</imageName>
                <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

(2)创建 Dockerfile

src/main/docker 目录下创建 Dockerfile 文件:

# 使用官方的 Java 8 镜像作为基础镜像
FROM openjdk:8-jdk-alpine

# 设置工作目录
WORKDIR /app

# 将打包好的 JAR 文件复制到容器中
COPY target/myapp-0.0.1-SNAPSHOT.jar app.jar

# 暴露端口
EXPOSE 8080

# 启动应用
ENTRYPOINT ["java", "-jar", "app.jar"]

(3)打包并构建 Docker 镜像

运行以下 Maven 命令:

mvn clean package docker:build

(4)运行 Docker 容器

docker run -p 8080:8080 myapp:0.0.1-SNAPSHOT

3. 使用jib-maven-plugin打包 Docker 镜像

(1)在pom.xml中添加插件

<build>
    <plugins>
        <plugin>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>jib-maven-plugin</artifactId>
            <version>3.2.1</version>
            <configuration>
                <to>
                    <image>myapp:${project.version}</image>
                </to>
            </configuration>
        </plugin>
    </plugins>
</build>

(2)打包并构建 Docker 镜像

运行以下 Maven 命令:

mvn clean package jib:dockerBuild

(3)运行 Docker 容器

docker run -p 8080:8080 myapp:0.0.1-SNAPSHOT

4. 使用spring-boot-maven-plugin打包 Docker 镜像

(1)在pom.xml中添加插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <image>
                    <name>myapp:${project.version}</name>
                </image>
            </configuration>
        </plugin>
    </plugins>
</build>

(2)打包并构建 Docker 镜像

运行以下 Maven 命令:

mvn spring-boot:build-image

(3)运行 Docker 容器

docker run -p 8080:8080 myapp:0.0.1-SNAPSHOT

5. 总结

根据项目需求选择合适的插件,可以高效地将 Maven 项目打包成 Docker 镜像并部署到容器环境中。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文