1.准备工作

安装 Docker:确保本地或服务器上已安装 Docker。 创建 Spring Boot 项目:假设你已经有一个 Spring Boot 项目。

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. 总结

docker-maven-plugin:需要手动编写 Dockerfile,适合需要自定义镜像的场景。
jib-maven-plugin:无需 Dockerfile,直接构建镜像,适合简单场景。
spring-boot-maven-plugin:Spring Boot 官方支持,适合 Spring Boot 项目。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐