spring boot项目如何打包成docker镜像

-
-
2024-04-22

把spring boot打包成docker镜像

可以使用自带的maven插件:spring-boot:build-image

如果跨平台编译,需要在pom.xml里指定,比如要编译Linux的amd64,就需要paketobuildpacks/builder:base这个编译器

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <image>
                        <name>100.111.211.140:5000/eonebot-x64:latest</name>
                        <builder>paketobuildpacks/builder:base</builder>
                        <env>
                            <BP_JVM_VERSION>17</BP_JVM_VERSION>
                        </env>
                    </image>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

打包完会有一个项目名称的镜像

docker images

推送到私有仓库

给该镜像打个tag

docker tag appname:0.0.1-SNAPSHOT 192.168.1.12:5000/appname:0.0.1-SNAPSHOT

此时镜像列表里就有了新的镜像192.168.1.12:5000/appname

有时候重新打包,需要把之前打过tag的镜像删掉,这个还没研究出来如何处理,先手动删吧,docker images找到打过tag的镜像,记下镜像id,使用docker rmi删除镜像

docker images
docker rmi c7498795d533

推送镜像到私有仓库

docker push 192.168.1.12:5000/appname:0.0.1-SNAPSHOT

目录