jib-java容器化工具
Jib是google开源的Java容器化工具
- 简单——Jib使用Java开发,并作为Maven或Gradle的一部分运行。你不需要编写Dockerfile或运行Docker守护进程,甚至无需创建包含所有依赖的大JAR包。因为Jib与Java构建过程紧密集成,所以它可以访问到打包应用程序所需的所有信息。在后续的容器构建期间,它将自动选择Java构建过的任何变体。
- 快速——Jib利用镜像分层和注册表缓存来实现快速、增量的构建。它读取你的构建配置,将你的应用程序组织到不同的层(依赖项、资源、类)中,并只重新构建和推送发生变更的层。在项目进行快速迭代时,Jib只讲发生变更的层(而不是整个应用程序)推送到注册表来节省宝贵的构建时间。
- 可重现——Jib支持根据Maven和Gradle的构建元数据进行声明式的容器镜像构建,因此,只要输入保持不变,就可以通过配置重复创建相同的镜像。
仓库地址:https://github.com/GoogleContainerTools/jib
1. 配置jib插件
使用如下maven插件替换docker-maven-plugin
<plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <version>0.9.10</version> <configuration> <from> <image>openjdk:alpine</image> </from> <to> <image>${registry_url}/hec/${project.artifactId}:${project.version}-${ci_pipeline_id}</image> <auth> <username>${registry_username}</username> <password>${registry_password}</password> </auth> </to> <container> <jvmFlags> <jvmFlag>-Djava.security.edg=file:/dev/./urandom</jvmFlag> </jvmFlags> </container> </configuration> </plugin>
插件配置中的用户密码及镜像库地址在ci的环境变量中配置
2.配置ci文件
修改.gitlab-ci.yml的内容如下
image: xxx.com/xxx-tools/cibase:0.5.0 variables: MAVEN_OPTS: -Dmaven.repo.local=.m2/repository BUILD_CI_NAME: $CI_COMMIT_REF_NAME-$CI_PIPELINE_ID stages: - build - dev-release cache: key: one-key-for-all paths: - .m2/repository/ build: stage: build script: "mvn -U clean compile" dev-release: stage: dev-release only: - tags - development-uat - /^release-.*$/ when: manual script: - "mvn compile jib:build -Dregistry_url=$REGISTRY_URL -Dregistry_username=$REGISTRY_USERNAME -Dregistry_password=$REGISTRY_PASSWORD -Dci_pipeline_id=$BUILD_CI_NAME"
3.启动参数修改
由于jib的打包方式,暂时不支持Docker启动时传入JAVA_OPTS环境变量,可以用JAVA_TOOL_OPTIONS替代,效果一样,docker环境变量配置如下:
JAVA_TOOL_OPTIONS -Xmx512m -Denv=dev
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
遇到fabric的坑
本次启动网络是使用fabric-sample(release-1.0)项目,而且工具已经安装成功1 出现Attempting to Query PEER0 解决办法:因为docker容器版本问题,byfn.sh这个脚本默认拉去的镜像是latest版的。下来打开byfn.sh文件定位到321行,将IMAGETAG="latest"修改为IMAGETAG="x86_64-1.0.0",重新执行以下命令 ./byfn.sh -m down # 关闭网络,自动清理新建的容器 docker rmi $(docker images -q) # 删除所有镜像 ./byfn.sh -m up # 重新执行
- 下一篇
IntelliJ IDEA 2018.2新版本支持 Java 11、Mac Touch Bar…
本篇文章内容转载来自微信公众号"Mac Talk”,此公众号由极客时间的创始人池建强老师维护,池老师的文章写作风格非常幽默风趣且朴实无华,对苹果Mac软件、产品设计、程序开发等领域有着深入的研究和新颖独特的见解。 上一遍文章我介绍了IDEA的入门及使用体验,目前我用的是IDEA 2018.1版本,这不JetBrains最近更新了最新2018.2版本,于是乎池老师很快就发布了新版本的升级特性介绍,最初我也想自己了解下新特性顺便写一下这方面的东西,但是看完池老师从InfoQ中文网站重新校对和修改之后的这篇文章,我就觉得写的特别的好,且最近难得一次见到池老师在文末未打软广,说实话这波吃鸡吃的我猝不及防,原文转载如下: 题图:酒杯里的代码,自己拍的 我自己编程生涯里写 Java 比较多,常用的编辑器是 Vim 和 IntelliJ IDEA。Vim 免费轻快,像一把雪亮的快刀,挡着披靡。IDEA 厚重强大,华丽的像关二爷的青龙偃月刀,锋利无匹。各有各的好处,我都非常喜欢。近期 JetBrains 发布了 IntelliJ IDEA 的最新版本:2018.2,其中包含了诸多新特性,我第一时间更新...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS关闭SELinux安全模块
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音