当前位置: 首页 > news >正文

牛商做网站的理念网站建设爫金手指科捷15

牛商做网站的理念,网站建设爫金手指科捷15,做网站需要多少钱呢,保定网站建设推广公司怎么样Spring Boot应用程序可以使用Dockerfiles容器化,或者使用Cloud Native Buildpacks来创建优化的docker兼容的容器映像,您可以在任何地方运行。 1. Efficient Container Images 很容易将Spring Boot fat jar打包为docker映像。然而,像在docke…

Spring Boot应用程序可以使用Dockerfiles容器化,或者使用Cloud Native Buildpacks来创建优化的docker兼容的容器映像,您可以在任何地方运行。

1. Efficient Container Images

很容易将Spring Boot fat jar打包为docker映像。然而,像在docker映像中那样复制和运行fat jar有很多缺点。在不拆包的情况下运行fat jar总是会有一定的开销,在容器化的环境中,这是很明显的。另一个问题是,将应用程序的代码及其所有依赖项放在Docker映像的一个层中是次优的。由于重新编译代码的次数可能比升级所使用的Spring Boot版本的次数要多,因此最好将代码分开。如果将jar文件放在应用程序类之前的层中,Docker通常只需要更改最底层,并且可以从缓存中获取其他层。

1.1. Unpacking the Executable JAR

如果从容器中运行应用程序,则可以使用可执行jar,但将其扩展并以不同的方式运行通常也是一种优势。某些PaaS实现也可能选择在运行存档之前解包。例如,Cloud Foundry就是这样运作的。运行解压缩存档文件的一种方法是启动适当的启动器,如下所示:

$ jar -xf myapp.jar
$ java org.springframework.boot.loader.JarLauncher

这实际上在启动时(取决于jar的大小)比从未分解的存档运行要稍微快一些。在运行时,您不应该期望有任何差异。

一旦你解压缩了jar文件,你还可以通过使用“自然的”main方法而不是JarLauncher来运行应用程序,从而获得额外的启动时间提升。例如:

$ jar -xf myapp.jar
$ java -cp BOOT-INF/classes:BOOT-INF/lib/* com.example.MyApplication

在应用程序的main方法上使用JarLauncher有一个可预测的类路径顺序的额外好处。jar包含一个类路径。该文件在JarLauncher构造类路径时使用。

1.2. Layering Docker Images

为了更容易地创建优化的Docker映像,Spring Boot支持向jar中添加一个层索引文件。它提供了一个层列表以及应该包含在这些层中的jar部分。索引中的层列表是根据层应该添加到Docker/OCI映像的顺序排序的。开箱即用,支持以下层:

  • dependencies (对于常规发布的依赖项)

  • spring-boot-loader (对于所有在org/springframework/boot/loader下的东西)

  • snapshot-dependencies (对于快照依赖项)

  • application (适用于应用程序类和资源)

The following shows an example of a layers.idx file:

- "dependencies":- BOOT-INF/lib/library1.jar- BOOT-INF/lib/library2.jar
- "spring-boot-loader":- org/springframework/boot/loader/JarLauncher.class- org/springframework/boot/loader/jar/JarEntry.class
- "snapshot-dependencies":- BOOT-INF/lib/library3-SNAPSHOT.jar
- "application":- META-INF/MANIFEST.MF- BOOT-INF/classes/a/b/C.class

2. Dockerfiles

虽然在Dockerfile中只需要几行就可以将Spring Boot fat jar转换为docker映像,但我们将使用分层特性来创建优化的docker映像。当您创建包含layers索引文件的jar时,spring-boot-jarmode-layertools jar将作为依赖项添加到jar中。有了这个jar放在类路径上,您就可以以一种特殊模式启动应用程序,这种模式允许引导代码运行与应用程序完全不同的东西,例如,提取层的东西。

layertools模式不能用于包含启动脚本的完全可执行的Spring Boot归档文件。在构建打算与layertools一起使用的jar文件时,禁用启动脚本配置。

下面是使用layertools jar模式启动jar的方法:

$ java -Djarmode=layertools -jar my-app.jar

这将提供以下输出:

Usage:java -Djarmode=layertools -jar my-app.jarAvailable commands:list     List layers from the jar that can be extractedextract  Extracts layers from the jar for image creationhelp     Help about any command

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

假设上面的Dockerfile在当前目录下,你的docker镜像可以使用docker build .来构建,或者可以选择指定应用程序jar的路径,如下所示:

$ docker build --build-arg JAR_FILE=path/to/myapp.jar .

http://www.yayakq.cn/news/359040/

相关文章:

  • 免费网站模版网页传奇服务端
  • 抚州城乡建设厅网站合作建网站
  • 网站建设签收单网站制作怎么入门
  • 云梦做网站的优势人社网站和微信平台建设方案
  • 网站能实现什么功能购物网站做推广
  • 网站建设需要注意些什么河南省新闻出版培训中心
  • 长沙专门做网站公司做付费推广是网站好还是单页面好
  • 中国建设银行官方网站网上银行专业的手机网站建设公司排名
  • 长沙网站改版自己做网站 什么软件
  • 医疗网站建设网站新浪企业邮箱
  • 厦门网站建设公司推荐简单网页设计模板代码
  • 淘宝客怎么建设自己网站网站备案有幕布
  • 寄生虫网站怎么做贵州住房和建设厅网站
  • 高权重网站出售加强学科网站建设
  • 怎么做中英文双语网站四合一网站
  • 网站开发毕业设计论文织梦网站图片修改
  • 免费ppt模板下载网站入口广州专业做网页的公司
  • 吉恩聊城网站建设甘肃省住房建设厅网站
  • 美工素材网站有哪些seo优化在哪里学
  • 如何制作网页图郑州seo网络推广
  • 网站建设公司咨网站前置审批在哪里办
  • 网站改版公司谷歌浏览器下载安卓版
  • php给一个网站做后台怎样申请网站
  • 台州seo网站管理销售管理软件排行
  • 网站后台密码错误装修公司网站源代码
  • 网站建设费能抵扣吗山西做杂粮的网站
  • 书荒小说阅读器是哪个网站做的电商运营是销售吗
  • 帝国音乐网站怎么做数据表登录后跳转到之前wordpress
  • 老师找学生做网站是什么心态如何注册域名
  • 自己如何做网站优化怎么做qq代刷网站