docker,spirngboot父子工程,只构建主模块,docker-maven-plugin构建插件,
实操:jib只构建关键模块并上传
前言 网上使用jib打包的代码和教程很多,但是都是很简单的单模块项目,配置简单,不能满足自己的需要 我想要的是:多模块下只需要构建主要的模块(如启动类)并上传
参考文章
- 官方有多模块打包demo
- 上午在issue中发现类似的提问:Add configuration to skip in Maven plugin
搜索<pluginManagement>可以定位 - csdn有博主提了一句,但是没给出配置Jib使用小结(Maven插件版) :小结6(自己悟性不行)
- b站up的视频下求助构建容器镜像的 N 种方式(2)- jib
- up主回复,再次提到了
pluginManagement ,我又翻了回去,终于解决,感谢@成富_Alex
我的项目结构(ruoyi):
通常情况下,SpirngBoot项目下是有多个模块的,而这些模块我们并不需要执行构建和镜像的push操作
详细配置
父pom设置
这里设置插件到pluginManagement ,当子模块使用时才生效,避免全部模块构建
<build>
***
<pluginManagement>
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<from>
<image>ascdc/jdk8</image>
</from>
<to>
<image>registry.cn-beijing.aliyuncs.com/***/${project.artifactId}:${project.version}</image>
<auth>
<username>阿里云用户名</username>
<password>仓库密码(不是登录密码)</password>
</auth>
<tags>
<tag>
${project.version}
</tag>
</tags>
</to>
<container>
<ports>
<port>8080</port>
</ports>
</container>
</configuration>
</plugin>
</plugins>
</pluginManagement>
***
</buidl>
ruoyi-admin模块pom设置
ruoyi-admin模块使用jib
<build>
<plugins>
***
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
***
</plugins>
</build>
打包
我们绑定了生命周期和buid上传操作,日志中就能看到构建和上传的信息了
刷新镜像页面,上传成功
验证构建镜像
本地的tar格式镜像导入
-
先用十八般武艺上传tar文件到服务器 -
使用docker -load -i 文件名 加载镜像(日期有问题,后面说) -
使用命令docker run -p 8080:8080 -d registry.cn-beijing.aliyuncs.com/命令空间/ruoyi-admin:2.4.0 ,一定要指定版本,否则会去你的镜像仓库拉取,报没有认证的错误
上传后拉取镜像
因为仓库是私有的,所以要先登录后再拉取
-
我们按照个人实例 ->镜像仓库 ->管理 页面提供的命令就可以拉取 -
直接创建镜像docker run -p 8080:8080 -d registry.cn-beijing.aliyuncs.com/命令空间/ruoyi-admin:2.4.0 我们已经登录,所以在创建时直接拉取即可
验证访问
后续
这只是手动,后面我们搭配jenkins就能完成全自动了,期待期待
|