栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker之使用maven插件【Dockerfile方式】构建并推送镜像到私有仓库

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker之使用maven插件【Dockerfile方式】构建并推送镜像到私有仓库

准备工作

操作系统版本

[root@node02 ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

docker版本

[root@node02 ~]# docker -v
Docker version 18.06.3-ce, build d7080c1

接上一篇: 【Docker之使用maven插件【配置方式】构建并推送镜像到私有仓库】 ,这次我们通过 maven 插件和Dockerfile混合方式来生成镜像并推送到私有仓库

本文内容和上一篇只有以下几个地方不一样,前提是你的docker私有仓库搭建好了,并且开启了api服务,可以参考: 【Docker之用docker-compose安装registry和docker-registry-web私有仓库和仓库前端】

  • 在自己项目里新建一个 Dockerfile文件,可以放在自定义的目录里:

  • 编辑maven pom文件,我们使用 docker-maven-plugin,和上一篇区别在添加了 dockerDirectory 标签指定了Dockerfile的路径,并且配置相关的只保留 resources 标签,私有仓库相关的不变;


                
                com.spotify
                
                docker-maven-plugin
                1.1.0
                
                    
                    
                    192.168.126.99:5000
                    
                    http://192.168.126.99:2375
                    
                    true
                    
                    true

                    
                    
                    192.168.126.99:5000/${project.artifactId}:${project.version}

                    
                    ${project.basedir}/docker_file

                    
                    
                        
                            /${app.dir}
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                            classes/application.yaml
                        
                    
                
                
            

Dockerfile 内容:

FROM openjdk:8-jre
COPY /app/tailf-web-1.2.1-SNAPSHOT.jar /app/tailf-web-1.2.1-SNAPSHOT.jar
COPY /app/classes/application.yaml /app/log/
WORKDIR /app
CMD ["java", "-jar", "/app/tailf-web-1.2.1-SNAPSHOT.jar"]
原理

docker-maven-plugin插件在配置dockerDirectory后会忽略掉pom里的baseImage, maintainer, cmd and entryPoint配置,我们可以使用 resources 标签准备构建镜像的文件;
其大致流程:
1、resources标签指定的资源会被复制到编译路径下的docker目录里

2、根据Dockerfile定义,调用docker api即 dockerHost 标签配置的服务器构建镜像(可以设置成本地,如果本地有docker服务并开启了docker api)
3、docker api所在的服务器构建镜像完毕,将镜像推送到私有仓库

构建推送:clean - build - docker:build

日志:

分析

Dockerfile方式比pom里配置的方式相比,个人觉得更喜欢Dockerfile方式

文档

1、docker-maven-plugin文档
【spotify/docker-maven-plugin】 https://github.com/spotify/docker-maven-plugin

2、代码上传到了 【码云】 ,可点击查看

over~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/828620.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号