Java项目使用jib打包docker镜像的简单记录

2023-11-05

jib主要用来在没有docker环境下将项目打包成docker镜像

主要有一下四种方式: maven、gradle、core、cli 本文主要介绍cli和maven两种打包方式

github地址: https://github.com/GoogleContainerTools/jib

1. 使用jib-cli将war包打成docker镜像

例子:

jib war  --send-credentials-over-http  --allow-insecure-registries --from=bitnami/tomcat:8.0.53
 --target=镜像名称:版本 --to-username=**** --to-password=**** --app-root=/tomcat   
 --additional-tags=latest   通过  --expose=端口,端口  ****.war

参数解释:

–send-credentials-over-http 通过http发送用户名和密码 内网环境可以走这个,外网最好时https --send-credentials-over-http
–allow-insecure-registries 使用不安全的仓库,就是仓库可以用http请求到,本地仓库可以设置成这个
以上两个参数需要放在命令的开头,否则无法生效

–environment-variables 键值对,环境变量 --environment-variables=jvmFlag=-Xms4g,jvmFlag=-Xmx4g

–program-args=程序的启动参数 ,可通过主类的args[]数组获取

–volumes= 挂在卷 具体的物理地址

–app-root=/tomcat 默认使用jetty作为web服务器,此处可以通过–from设置为docker hub中的tomcat,但是设置成Tomcat以后,此参数必填,需要填–from的tomcat的webapps的目录地址,否则不会加载,tomcat是可以将部署文件与tomcat本身分离的,只需要在service.xml中添加虚拟目录就行,但是这个工具不会自动映射,dockerhub上tomcat的默认路径为/usr/local/tomcat ,此处就应该是 /usr/local/tomcat/webapps/项目名 即可

–entrypoint=设定参数 --entrypoint=[“java”,“-jar”,“aaa.jar”],一般不用写,默认会配置好

–target=可以是镜像仓库的名称也可以是某个docker的远程服务的地址,tcp://…:2375/imagesNames:版本

2. jib war的全部参数:

Usage: jib war [-hV] [--allow-insecure-registries]
               [--send-credentials-over-http] [--app-root=<app root>]
               [--base-image-cache=<cache-directory>] [--console=<type>]
               [--creation-time=<creation-time>] [--from=<base-image>]
               [--image-format=<image-format>]
               [--image-metadata-out=<path-to-json>] [--name=<image-reference>]
               [--project-cache=<cache-directory>] -t=<target-image>
               [-u=<user>] [--verbosity=<level>] [--additional-tags=<tag>[,
               <tag>...]]... [--entrypoint=<entrypoint>[\s+<entrypoint>...]]...
               [--environment-variables=<key>=<value>[,<key>=<value>...]]...
               [--expose=<port>[,<port>...]]... [--labels=<key>=<value>[,
               <key>=<value>...]]... [--program-args=<program-argument>[,
               <program-argument>...]]... [--volumes=<volume>[,<volume>...]]...
               [--credential-helper=<credential-helper> |
               [--username=<username> --password[=<password>]] |
               [[--to-credential-helper=<credential-helper> |
               [--to-username=<username> --to-password[=<password>]]]
               [--from-credential-helper=<credential-helper> |
               [--from-username=<username> --from-password[=<password>]]]]]
               [@<filename>...] <warFile>

3. 对于SpringBoot项目:maven相关配置

<plugin>    
    <groupId>com.google.cloud.tools</groupId>    
    <artifactId>jib-maven-plugin</artifactId>    
    <version>1.6.1</version>    
    <configuration>       
        <!--from节点用来设置镜像的基础镜像,相当于Docerkfile中的FROM关键字-->       
        <from>           
            <!--使用openjdk官方镜像-->           
            <image>openjdk:alpine</image>        
        </from>       
        <to>            
            <!--镜像名称和tag,使用了mvn内置变量${project.version},表示当前工程的version-->             
            <image>172.16.9.3:20039/repository/docker-images-hosted/demo-jib:${project.version}</image>
            <auth>                
                <password>infodocker</password>            
            </auth>        
        </to>        
        <!--容器相关的属性-->        
        <container>            
            <!--jvm内存参数-->           
            <jvmFlags>              
                <jvmFlag>-Xms4g</jvmFlag>              
                <jvmFlag>-Xmx4g</jvmFlag>            
            </jvmFlags>           
            <!--要暴露的端口-->           
            <ports>              
                <port>17083</port>         
            </ports>           
            <creationTime>USE_CURRENT_TIMESTAMP</creationTime>       
        </container>       
        <allowInsecureRegistries>true</allowInsecureRegistries>   
    </configuration>    
    <!--sendCredentialsOverHttp 打成jar包启动时使用-DsendCredentialsOverHttp=true来传递参数--> 
</plugin>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java项目使用jib打包docker镜像的简单记录 的相关文章

随机推荐

  • 如何进行需求测试/需求评审

    由于软件系统的复杂性 在需求分析阶段可能存在着开发方对委托方业务需求理解不全面 不准确的情况 在这种情况下 如果不进行相关的质量控制 往往会造成开发结果与用户需求不一致的后果 需求测试的目的就在于保证软件设计最大可能地满足有关用户的所有需求
  • 从前端传来的JSON中获取数据

    首先推荐一个神器 JSON在线解析及格式化验证 JSON cn 里面的 JSON在线解析 和 JSON生成JAVA实体 两个功能 前几天可是帮了我大忙了 前几天写一个功能 在这个功能中前端传过来的JSON十分复杂 示例如 Dispositi
  • virtualbox 安装centos7之后无法ssh登陆

    文章目录 virtualbox 安装 centos7 开启centos7网络 sshd 服务是否开启 设置 virtualbox 端口转发功能 设置secureCrt 连接参数 virtualbox 安装 centos7 virtualbo
  • 贝叶斯网络与R语言

    贝叶斯网络与R语言 基本语句 1 1网络的创建 加载扩展包和bnlearn包自带数据集marks 数据集marks 88 学生5门课的成绩 MECH mechanics VECT vectors ALG algebra ANL analys
  • 十一. Kubernetes 容器 container 设置详解

    目录 一 基础解释 yaml设置容器拉取镜像注意点 1 containers image 镜像 2 containers imagePullPolicy 镜像拉取策略 3 配置拉取私库镜像 spec下的imagePullSecrets 4
  • 【六级单词】

    affordable 价格合理的 cash 现金 insurance 保险 forune 一大笔钱 机会 运气 misfortune 不幸 灾难 luxury 奢侈 豪华 luxurious shop pension 养老金 抚恤金 com
  • C语言每日一题:16:数对。

    思路一 基本思路 1 x y均不大于n 就是小于等于n 2 x y大于等于k 3 一般的思路使用双for循环去遍历每一对数 代码实现 include
  • pytorch霹雳巴拉——图像分类篇

    up给的教程路线 图像分类 目标检测 一步步学习用pytorch实现深度学习在cv上的应用 并做笔记整理和总结 参考内容来自 up主的b站链接 https space bilibili com 18161609 channel index
  • layui 动态加载 select

    感谢小张帅三代以及他的好文 layui ajax select 动态添加数据方法 给我指明了前进的方向 首先 这是一个学习的过程 并不是最优方案 只是 玩索而有得 而己 做了一个联动的搜索框 本来一开始想用layuiselect第三方插件
  • 图的遍历方法——DFS和BFS

    DFS类似于树的先序遍历 因此可以用递归实现 BFS类似于树的层次遍历 因此可以用队列实现 说明 下面代码中图的存储方式是邻接表 关于邻接表和邻接矩阵可看邻接表和邻接矩阵 1 深度优先遍历 Depth First Search 思想 从图中
  • 微信小程序实现单/多图片上传(预览删除)

    wxml结构 上传图片
  • Linux中Vim文件夹路径,一些有用的Linux命令和Vim使用总结

    常见Linux命令 文件复制 移动 删除 创建 复制 cp v 源文件路径 目标文件路径 移动 mv v 源文件路径 目标文件路径 删除 rm v 文件路径 rmdir v 文件夹路径 文件夹要为空 rm rv 文件夹路径 递归删除文件夹及
  • Qt界面开发(一)(各种控件以及图表)

    注 资源主要来源 http www qtcn org bbs u 110085 刘大神 如若侵权 请联系删除 本文只是将作品集合到起来 方便大家一起学习 资源集合已经放到 链接 https pan baidu com s 1sVvQE8uD
  • ts 因为在此系统上禁止运行脚本(win10系统)

    今天弄了一下Ts 有点晚了 但是确实是才开始尝试 以前只是看了看 1 先安装 npm install g typescript 2 安装成功 typescript 4 0 3 added 1 package from 1 contribut
  • Goby的使用 漏洞扫描工具

    获取自己虚拟机的ip 打开Goby 点击扫描 输入虚拟机的IP地址 开始扫描 扫描结束这里没有扫到漏洞 点击报告查看报告 右上角下载生成报告 漏洞举例
  • C++学习笔记之浅拷贝&深拷贝的理解

    一 浅拷贝 浅拷贝就是把类中的成员属性简单的复制 如果有指针成员变量 也只是拷贝指针的地址 下面案例就是先创建teacher1对象 再把它初始化给teacher2对象 在初始化时需要调用复制构造函数 因为Teacher类没有重写复制构造函数
  • 使用docker搭建一个完全分布式的hadoop集群

    项目地址 https github com czfshine docker hadoop docker hadoop A dockerfile for setting up a full Hadoop cluster server 一套在u
  • C++ fopen、CFile如何以UTF-8编码格式读写文件

    How to write UTF 8 file with fprintf in C http stackoverflow com questions 10028750 how to write utf 8 file with fprintf
  • 从零搭建分布式文件系统MinIO比FastDFS要更合适

    前两天跟大家分享了一篇关于如何利用FastDFS组件来自建分布式文件系统的文章 有兴趣的朋友可以阅读下 用asp net core结合fastdfs打造分布式文件存储系统 通过留言发现大家虽然感兴趣 但是都觉得部署比较麻烦 的确 fastd
  • Java项目使用jib打包docker镜像的简单记录

    jib主要用来在没有docker环境下将项目打包成docker镜像 主要有一下四种方式 maven gradle core cli 本文主要介绍cli和maven两种打包方式 github地址 https github com Google