1. <!-- profile docker config -->
  2. <profiles>
  3. <profile>
  4. <id>docker</id>
  5. <build>
  6. <plugins>
  7. <plugin>
  8. <groupId>com.spotify</groupId>
  9. <artifactId>docker-maven-plugin</artifactId>
  10. <version>0.4.14</version>
  11. <executions>
  12. <!-- when executing mvn package, it will execute mvn docker:build at the same time -->
  13. <execution>
  14. <id>build-image</id>
  15. <phase>package</phase>
  16. <goals>
  17. <goal>build</goal>
  18. </goals>
  19. </execution>
  20. <!-- when executing mvn package, it will execute mvn docker:build -DpushImage at the same time -->
  21. <execution>
  22. <id>push-image</id>
  23. <phase>package</phase>
  24. <goals>
  25. <goal>push</goal>
  26. </goals>
  27. </execution>
  28. </executions>
  29. <configuration>
  30. <imageName>${env.DOCKER_REGISTRY_NAME}/${docker.image.prefix}/${project.artifactId}</imageName>
  31. <imageTags>
  32. <imageTag>${project.version}</imageTag>
  33. <imageTag>latest</imageTag>
  34. </imageTags>
  35. <forceTags>true</forceTags>
  36. <dockerDirectory>${project.artifactId}/src/main/docker</dockerDirectory>
  37. <serverId>docker-registry</serverId>
  38. <registryUrl>${env.DOCKER_REGISTRY}</registryUrl>
  39. <dockerCertPath>${env.DOCKER_CERT_PATH}</dockerCertPath>
  40. <resources>
  41. <resource>
  42. <targetPath>/</targetPath>
  43. <directory>${project.build.directory}</directory>
  44. <include>${project.build.finalName}.jar</include>
  45. </resource>
  46. </resources>
  47. <buildArgs>
  48. <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
  49. </buildArgs>
  50. </configuration>
  51. </plugin>
  52. </plugins>
  53. </build>
  54. <activation>
  55. <property>
  56. <name>env</name>
  57. <value>docker</value>
  58. </property>
  59. </activation>
  60. </profile>
  61. </profiles>

其中

  1. env.DOCKER_REGISTRY_NAME = hub.xx.com:10443
  2. env.DOCKER_REGISTRY= https://hub.xx.com:10443
  3. env.DOCKER_CERT_PATH = E:\Doc\cert\hub.xx.com
  4. env.DOCKER_HOST = tcp://172.168.1.1:2375

注意:

最终的镜像一定要是~/~/~:~ 格式,如

  1. ${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}

mvn的setting配置

开放docker的2375端口方法

  1. vim /usr/lib/systemd/system/docker.service
  2. ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
  3. #重新加载docker配置
  4. systemctl daemon-reload // 1,加载docker守护线程
  5. systemctl restart docker // 2,重启docker

如果需要有docker服务器推送到私有中央仓库且为https协议,需要在/etc/docker/certs.d目录下配置证书,证书放置文件夹为私有仓库的域名如hub.123.com:10443

springboot项目打包docker镜像maven插件的更多相关文章

  1. Azure Devops实践(5)- 构建springboot项目打包docker镜像及容器化部署

    使用Azure Devops构建java springboot项目,创建镜像并容器化部署 1.创建一个springboot项目,我用现有的项目 目录结构如下,使用provider项目 在根目录下添加D ...

  2. Java SpringBoot 项目构建 Docker 镜像调优实践

    PS:已经在生产实践中验证,解决在生产环境下,网速带宽小,每次推拉镜像影响线上服务问题,按本文方式构建镜像,除了第一次拉取.推送.构建镜像慢,第二.三-次都是几百K大小传输,速度非常快,构建.打包.推 ...

  3. 【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)

    写在前面 最近,在研究如何使用Maven将SpringBoot项目打包成Docker镜像并发布到Harbor仓库,网上翻阅了很多博客和资料,发现大部分都是在复制粘贴别人的东西,没有经过实践的检验,根本 ...

  4. 将php项目打包docker镜像

    简介:有时候我们需要将php的项目打包成docker镜像,这里介绍下 思路:我们php和apache结合一个镜像实现php项目的访问,mysql是一个单独的镜像 步骤: 1.首先我们在本地测试好自己的 ...

  5. maven将自己的springboot项目打包成jar包后,作为工具包引入其他项目,找不到jar中的类

    将springboot项目打包成jar包,作为工具包导入项目后,找不到jar中的类. 原因是:springboot项目使用了自动的打包插件. 原先的插件配置: <build> <pl ...

  6. 【Docker】(5)---springCloud注册中心打包Docker镜像

    [Docker](5)---springCloud注册中心打包Docker镜像 上一篇文章讲了将镜像推送到远处私有仓库,然后再从私有仓库拉取该镜像的过程.而这里的镜像是直接从Docker拉取的. 所以 ...

  7. Jenkins把GitHub项目做成Docker镜像

    本文是<Jenkins流水线(pipeline)实战>系列的第三篇,前面已对Jenkins流水线有了基本认识,也试过从GitHub下载pipeline脚本并执行,今天的实战是编写一段pip ...

  8. 将spring cloud打包docker镜像

    简介:用spring cloud构建微服务后,微服务肯定要docker镜像化然后用rancher等可视化工具管理,这就是走完了一套基本的流程,现在简单介绍下 环境:两台centos7.x的服务器,一台 ...

  9. SpringBoot 项目打包后运行报 org.apache.ibatis.binding.BindingException

    今天把本地的一个SpringBoot项目打包扔到Linux服务器上,启动执行,接口一访问就报错,但是在本地Eclipse中启动执行不报错,错误如下: org.apache.ibatis.binding ...

随机推荐

  1. LAMP——实现phpMyadmin、wordpress及Discuz应用部署

    一.环境准备 操作系统:Centos8.3.2011 软件:Apache2.4.37.Mysql8.0.21.PHP7.2.24 二.安装过程 1.安装phpmyadmin 1.1.安装软件包并启动服 ...

  2. Nginx:Nginx配置url重定向

    符号含义: 正则表达式匹配: ~ 为区分大小写匹配 ~* 为不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配: -f和!-f用来判断是否存在文件 -d和!-d用 ...

  3. java.util.Date 与 java.sql.Date

    java.sql.Date 继承 java.util.Date 区别: 1.java.sql.Date 一般用于数据库 2.java.sql.Date 没有时分秒,涉及时分秒的函数都会报异常(且这些方 ...

  4. SQL查询语句中参数带有中文查询不到结果

    今天写个小demo的时候发现sql语句里面的username为中文的时候就不能查到正确结果,sql语句如下: String sql = "select * from user where u ...

  5. shell下读取文件数据

    参考:https://www.imzcy.cn/1553.html while和for对文件的读取是有区别的: 1. for对文件的读是按字符串的方式进行的,遇到空格什么后,再读取的数据就会换行显示 ...

  6. ctf常见编码形式(罗师傅)

    https://zhuanlan.zhihu.com/p/30323085 这是原链接 ASCII编码 •ASCII编码大致可以分作三部分组成: •第一部分是:ASCII非打印控制字符(参详ASCII ...

  7. java基础---数组的基本概念(1)

    学习资源来自尚硅谷java基础学习 1. 数组的概念 数组(Array), 是多个相同类型数据按一定顺序排列的集合, 并使用一个名字命名, 并通过编号的方式对这些数据进行统一管理. 数组属于引用数据类 ...

  8. YAOI Round #1 题解

    前言 比赛网址:http://47.110.12.131:9016/contest/3 总体来说,这次比赛是有一定区分度的, \(\text{ACM}\) 赛制也挺有意思的. 题解 A. 云之彼端,约 ...

  9. 中国剩余定理简析(python实现)

    中国剩余定理CRT 正整数m1,m2,...,mk两两互素,对b1,b2,...,bk的同余式组为 \[\begin{cases} x \equiv b_1\; mod \;m_1\\ x \equi ...

  10. JAVA 中日志的记录于使用

    java中常用的日志框架 日志接口 Commons Logging Apache Commons Logging是一个基于Java的日志记录实用程序,是用于日志记录和其他工具包的编程模型.它通过其他一 ...