温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Maven插件中怎么构建Docker镜像

发布时间:2021-08-07 14:25:02 来源:亿速云 阅读:165 作者:Leah 栏目:编程语言

Maven插件中怎么构建Docker镜像,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

pom 配置

pom文件中需要引入相应的插件。docker-maven-plugin有三款:spotify、fabric8io和bibryam。其中第一款最为流行,资料也多,所以毫不犹豫选择第一款。

插件有两种使用方式,一种是在直接在pom配置中指定baseImage和entryPoint。另一种适合于复杂的构建,使用dockerfile,只需要在配置中指定dockerfile的位置。前一种比较简单,此处略过,主要讲下第二种的配置

<plugin>       <groupId>com.spotify</groupId>       <artifactId>docker-maven-plugin</artifactId>       <version>${maven.docker.version}</version>       <!--插件绑定到phase-->       <executions>         <execution>           <phase>install</phase>           <goals>             <goal>build</goal>           </goals>         </execution>       </executions>       <configuration>       <!--配置变量,包括是否build、imageName、imageTag,非常灵活-->         <skipDocker>${docker.skip.build}</skipDocker>         <imageName>${docker.image.prefix}/${project.artifactId}</imageName>         <!--最后镜像产生了两个tag,版本和和最新的-->         <imageTags>           <imageTag>${project.version}</imageTag>           <imageTag>latest</imageTag>         </imageTags>         <forceTags>true</forceTags>                  <env>           <TZ>Asia/Shanghai</TZ>         </env>         <!--时区配置-->         <runs>           <run>ln -snf /usr/share/zoneinfo/$TZ /etc/localtime</run>           <run>echo $TZ > /etc/timezone</run>                    </runs>         <dockerDirectory>${project.basedir}</dockerDirectory>         <resources>           <resource>             <targetPath>/</targetPath>             <directory>${project.build.directory}</directory>             <include>${project.build.finalName}.jar</include>           </resource>         </resources>         <!--push到私有的hub-->         <serverId>docker-registry</serverId>       </configuration></plugin>

${maven.docker.version}${docker.skip.build}${docker.image.prefix}都是可配置的变量。${project.basedir}${project.build.directory}${project.build.finalName}${project.version}分别对应项目根目录、构建目录、打包后生成的结果名称、项目版本号。

上面的pom插件配置,指定了dockerfile的位置和镜像的命名规则。并将docker的build目标,绑定在install这个phase上。

dockerfile

FROM java:8COPY target/maven-docker-image-0.0.1-SNAPSHOT.jar /app.jarEXPOSE 8080ENTRYPOINT ["java","-jar" ,"/app.jar"]

setting.xml

在pom插件中,还有一个serverId的配置。这个配置是必要的,对于需要将image上传到私有hub上,在如上配置之后,只需要加上-DpushImage即可实现。serverId是与maven的配置文件setting.xml相对应,setting.xml中增加的配置:

<server> <id>docker-registry</id> <username>用户名</username> <password>密码</password> <configuration>  <email>邮箱</email> </configuration></server>

看完上述内容,你们掌握Maven插件中怎么构建Docker镜像的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI