Spring boot maven 插件 build image

这篇具有很好参考价值的文章主要介绍了Spring boot maven 插件 build image。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring boot maven 插件 build image

首先项目本身要在 spring boot 2.5 以上,并且导入spring-boot-mavne 插件

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <image>
<!--                       镜像的命名和版本号设定 -->
                        <name>registry.cn-hangzhou.aliyuncs.com/hanxuelei/${project.artifactId}:${project.version}</name>
                        <publish>true</publish>
                        <env>
<!--                           定义构建的jvm版本号 -->
                            <BP_JVM_VERSION>8.0.312</BP_JVM_VERSION>
                        </env>
                        <bindings>
<!--                           这个是由于 github 直接下载文件很慢,可能会导致 timeout,重新定义 bindings 文件 -->
                            <binding>
                                D:/JavaProject/mall4cloud/bellsoft-jdk-config:/platform/bindings/bellsoft-jdk-config
                            </binding>
                        </bindings>
                    </image>
                    <docker>
<!--                       如果需要推送阿里云或者docker hub需要用户名和密码 -->
                        <publishRegistry>
                            <username>username</username>
                            <password>password</password>
                            <url>https://registry.cn-hangzhou.aliyuncs.com</url>
                            <email>2407411399@qq.com</email>
                        </publishRegistry>
                        <builderRegistry>
                            <username>username</username>
                            <password>password</password>
                            <url>https://registry.cn-hangzhou.aliyuncs.com</url>
                            <email>2407411399@qq.com</email>
                        </builderRegistry>
                    </docker>
                </configuration>
            </plugin>
        </plugins>
    </build>

如果网络没有问题的话,可以把如下xml删除

<publish>true</publish>
<env>
<!-- 定义构建的jvm版本号 -->
    <BP_JVM_VERSION>8.0.312</BP_JVM_VERSION>
</env>
<bindings>
<!-- 这个是由于 github 直接下载文件很慢,可能会导致 timeout,重新定义 bindings 文件 -->
    <binding>
        D:/JavaProject/mall4cloud/bellsoft-jdk-config:/platform/bindings/bellsoft-jdk-config
    </binding>
</bindings>

构建并且发布
mvn spring-boot:build-image,spring boot,maven,docker,spring boot,maven,java,docker

定义完pom.xml之后可能会出现的问题

docker环境搭建

首先本身需要安装docker

win

https://docs.docker.com/desktop/install/windows-install/

linux

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

阿里云镜像加速
mvn spring-boot:build-image,spring boot,maven,docker,spring boot,maven,java,docker
mvn spring-boot:build-image,spring boot,maven,docker,spring boot,maven,java,docker

提前准备

因为spring-boot-maven-plugin本身会在docker中pull两个镜像,在里面下载可能会比较慢,这里可以提前拉取到本地

docker pull paketobuildpacks/builder:base
docker pull paketobuildpacks/run:base-cnb

可能出现的问题

unable to download

如果是内网,或者网络不佳的情况下,可能会出现 unable to download https://github.com/
报错如下:

Paketo BellSoft Liberica Buildpack 5.2.1
  https://github.com/paketo-buildpacks/bellsoft-liberica
  Build Configuration:
    $BP_JVM_VERSION              11.0.9          the Java version
  Launch Configuration:
    $BPL_JVM_HEAD_ROOM           0               the headroom in memory calculation
    $BPL_JVM_LOADED_CLASS_COUNT  35% of classes  the number of loaded classes in memory calculation
    $BPL_JVM_THREAD_COUNT        250             the number of threads in memory calculation
    $JAVA_TOOL_OPTIONS                           the JVM launch flags
  BellSoft Liberica JDK 11.0.9: Contributing to layer
    Downloading from https://github.com/bell-sw/Liberica/releases/download/11.0.9.1+1/bellsoft-jdk11.0.9.1+1-linux-amd64.tar.gz
unable to invoke layer creator
unable to get dependency jdk
unable to download https://github.com/bell-sw/Liberica/releases/download/11.0.9.1+1/bellsoft-jdk11.0.9.1+1-linux-amd64.tar.gz
unable to request https://github.com/bell-sw/Liberica/releases/download/11.0.9.1+1/bellsoft-jdk11.0.9.1+1-linux-amd64.tar.gz
ERROR: failed to build: exit status 1

解决办法:

  1. 第一步创建文件夹
mkdir bellsoft-jdk-config && cd bellsoft-jdk-config
  1. 第二步,写入文件
echo "dependency-mapping" >> type
  1. 第三步,查询三个插件所对应的sha256, 地址在下面,找buildpack.toml
 [[metadata.dependencies]]
    cpes = ["cpe:2.3:a:oracle:jre:1.8.0:update362:*:*:*:*:*:*:*"]
    id = "jre"
    name = "BellSoft Liberica JRE"
    purl = "pkg:generic/bellsoft-jre@8.0.352?arch=amd64"
    sha256 = "8641017d42750c29055a83129ad6251261bd7ec8caf308b223ef1d29552f997a"
    stacks = ["io.buildpacks.stacks.bionic", "io.paketo.stacks.tiny", "*"]
    uri = "https://github.com/bell-sw/Liberica/releases/download/8u362+9/bellsoft-jre8u362+9-linux-amd64.tar.gz"
    version = "8.0.362"
  1. 第一个插件 https://github.com/paketo-buildpacks/bellsoft-liberica
  2. 第二个插件 https://github.com/paketo-buildpacks/syft
  3. 第三个插件 https://github.com/paketo-buildpacks/spring-boot
    注意: 如果在buildpack.toml没有找到,那么去release 中查找,通过 releases/download/11.0.9.1+1/bellsoft-jdk11.0.9.1+1-linux-amd64.tar.gz版本号查询对应的sha256的值
    然后创建文件,名称就是sha256的值,文件内容就是你所填写的url地址
    注意:这里的url地址必须要是可以被访问到的地方,否则还是会出现错误.
    最终结果如图所示

    mvn spring-boot:build-image,spring boot,maven,docker,spring boot,maven,java,docker

到这里并没有完结,有两种方法,第一种使用pack工具,重新打包一个镜像,修改原有镜像的值.第二种,使用buildings来修改,如下所示:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <image>
                        <bindings>
<!--                           这个是由于 github 直接下载文件很慢,可能会导致 timeout,重新定义 bindings 文件 -->
                            <binding>
                                D:/JavaProject/mall4cloud/bellsoft-jdk-config:/platform/bindings/bellsoft-jdk-config
                            </binding>
                        </bindings>
                    </image>
                </configuration>
            </plugin>
        </plugins>
    </build>

注意: D:/JavaProject/mall4cloud/bellsoft-jdk-config:/platform/bindings/bellsoft-jdk-config
:前面前面的是标题处新建的 bellsoft-jdk-config所在的位置,linux比较简单,而win可能需要填写绝对地址,防止出现其他问题

dial tcp: lookup XX on ip: read udp ip:port->ip:port i/o timeout

这里如果是插件导致的,目前并不知道原因是因为什么,很多帖子说可能是网络DNS的问题,我这里没有仔细去研究,但是解决办法是有的.我们可以直接手动下载的本地来进行处理.同样这里有三个文件需要处理.
我这里使用的jdk版本是8u312,如果不一样的话,可以通过报错的地方手动下载.

  1. https://github.com/bell-sw/Liberica/releases?page=4
  2. https://github.com/paketo-buildpacks/syft/releases?page=3
  3. https://repo.spring.io/ui/native/release/org/springframework/cloud/spring-cloud-bindings/1.8.0/spring-cloud-bindings-1.8.0.jar
    注意:github下载较慢的可以使用代理 fastgithub 或者 stream++亦或者使用下面提供的代理网站
    https://ghproxy.com
    三个文件如下
    https://download.csdn.net/download/m0_46596655/87576657
    之后可能需要搭建nginx来处理,这样的话是直接走本机的虚拟网卡,不需要走dns就可以解决问题
  4. 首先运行一个nginx
docker run -p 80:80 --name nginx -d nginx:latest
  1. 将nginx文件拷贝出来
docker cp [containerId]:/etc/nginx nginx
  1. 创建html文件夹和log文件夹用于挂载docker目录
mkdir html
mkdir log
  1. 重新运行nginx
docker run --name nginx -p 80:80 --net host -v ./conf.d:/etc/nginx/conf.d -v ./nginx.conf:/etc/nginx/nginx.conf -v ./html:/usr/share/nginx/html -v ./log:/var/log/nginx -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -d nginx:latest

上传文件,这里使用的是xshell,可以自行下载或者自己上传
mvn spring-boot:build-image,spring boot,maven,docker,spring boot,maven,java,docker

上传到nginx的html目录下,这样最简单可以直接处理http请求
最后将三个文件的地址进行填写

  1. jre运行环境
    mvn spring-boot:build-image,spring boot,maven,docker,spring boot,maven,java,docker

  2. syft
    mvn spring-boot:build-image,spring boot,maven,docker,spring boot,maven,java,docker

  3. spring jar
    mvn spring-boot:build-image,spring boot,maven,docker,spring boot,maven,java,docker

完成之后重新打包,查看输出信息是否符合
mvn spring-boot:build-image,spring boot,maven,docker,spring boot,maven,java,docker

这里最后就可以构建成功了
mvn spring-boot:build-image,spring boot,maven,docker,spring boot,maven,java,docker文章来源地址https://www.toymoban.com/news/detail-718222.html

到了这里,关于Spring boot maven 插件 build image的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java spring-boot项目中如何上传下载文件或图片到spring-boot规定的非静态目录

    spring-boot的项目,虽然它自己定义了一个静态文件的存储目录,但是这个目录一般是作为前端静态文件的目录来作为使用的。如果使用这个静态目录来作为我们上传文件的目录会有一个比较尴尬的地方:将spring-boot打包成为jar包后,随着上传图片的增多,这个jar包也会跟着变大

    2024年02月16日
    浏览(58)
  • spring-boot 依赖注入流程

    一、基本使用 主要是三个注解的使用,@Autowired,@Value,@Resource 二、实现步骤 拦截bean的创建 要想拦截bean,就需要处理spring bean生命周期事件,spring通过一些接口来处理事件,实现属性注入,需要 InstantiationAwareBeanPostProcessor接口来完成。 找到注解的字段,并注入值 获取被注

    2024年02月03日
    浏览(54)
  • spring-boot webservice的例子

    源码下载地址 spring-boot-webservice例子资源-CSDN文库 源码下载地址 spring-boot-clintwebservice调用服务的例子资源-CSDN文库

    2024年02月14日
    浏览(48)
  • bug1-找不到插件 ‘org.springframework.boot:spring-boot-maven-plugin:‘

    项目无缘无故出现此问题,在该位置加上版本号后解决。 步骤1:点击groudid进入spring-boot-maven-plugin-2.4.1.pom 步骤2:在spring-boot-maven-plugin-2.4.1.pom文件中找到报错的spring-boot-maven-plugin 步骤3:可以找到对应的版本号,将此版本号,添加到报错的位置。 步骤4:刷新maven,解决此问题。

    2024年02月16日
    浏览(55)
  • 构建SpringBoot工程时找不到插件“spring-boot-maven-plugin”

    目录 一、找不到插件“spring-boot-maven-plugin” 二、再次启动时,又发现报错         Unable to find a single main class from the following candidates [com.itheima.Application, com.example.springboot01.Springboot01Application]上面报错的意思是,有多个App类,它不知用哪个  三、把该插件打包后,在jar包的

    2024年02月07日
    浏览(68)
  • spring-boot中实现分片上传文件

    一、上传文件基本实现 1、前端效果图展示,这里使用 element-ui plus 来展示样式效果 2、基础代码如下 3、定义后端接口,并且处理好跨域(关于跨域处理,自己百度处理) 4、保存文件到本地文件 二、配置静态目录 1、在 FileApplication.java 旁边添加一个 SpringMvcConfig.java 的文件 2、直

    2024年02月05日
    浏览(54)
  • servlet -> spring-mvc -> spring-boot-> spring-security目录

    springMVC 启动源码 spring-boot注册servlet 3.多种方式注册servlet spring-boot自动注入DispatchServlet spring-security核心配置解读(粗) spring-security源码解读(新)

    2024年02月09日
    浏览(45)
  • 11 spring-boot的MVC配置原理

            1.ContentNegotiatingViewResolver视图解析器;         2.静态资源或者支持WebJars;         3.自动注册类型转换器:比如说前台提交user的字段,后台自动封装的意思;         4.HttpMessageConverters:转换http的请求和相应,比如把一个user字符串转为一个json字符串;        

    2024年02月15日
    浏览(42)
  • spring-boot集成mybatis真的很简单吗?

    在日常的后端开发中,使用mybatis作为DAO层的持久框架已经是惯例。但很多时候都是在别人搭好的框架中进行开发,对怎么搭建环境是一知半解,今天就来实践下。 来看下集成mybatis需要哪些步骤, 1、确定环境及依赖 2、配置文件; 3、测试 这里, 基于springboot集成mybatis。 先

    2024年02月08日
    浏览(56)
  • 基于Java (spring-boot)的图书管理系统

    一、项目介绍 该图书管理系统提供了一系列功能,包括图书管理、图书类型管理、读者借阅归还图书、用户管理和重置密码等。 在图书管理功能中,管理员可以方便地进行图书信息的管理。他们可以添加新的图书记录,包括书名、作者、出版社、ISBN等信息,并可以对已有的

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包