采用JIB在无docker环境构建一般镜像

六月 28, 2025 / 1900 / 12阅读 / 0评论/ 分类: 软件技术

前言

针对在没有docker环境的开发构建推送镜像的困扰,本教程整合了JIB-CLI的构建推送过程,供大家参考。

google jib 是Google于18年7月发布的一个针对Java应用的构建镜像的工具(支持Maven和Gradle) ,好处是能够复用构建缓存,能够加快构建,减小传输体积,并且让Java工程师不需要理解Docker相关知识就可以简单构建镜像并且发布到指定registry里(不需要docker build , tag, push)

安装

这里介绍的是JIB的命令行版本,相比插件版本,更自由灵活,可以用于构建发布像vue前端工程的镜像。

通过命令如下命令,查看帮助,就可以使用了。

D:\Develop\docker\jib>jib -h
Usage: jib [-hV] [@<filename>...] COMMAND
A tool for creating container images
      [@<filename>...]   One or more argument files containing options.
  -h, --help             Show this help message and exit.
  -V, --version          Print version information and exit.
Commands:
  build  Build a container
  jar    Containerize a jar
  war    Containerize a war

设置镜像代理

编辑 Google\Jib\Config\config.json 这个文件,可以添加修改 docker镜像,我们一般对设置 registry-1.docker.io 这个镜像代理就可以。

{
  "disableUpdateCheck": false,
  "registryMirrors": [
    {
      "registry": "registry-1.docker.io",
      "mirrors": ["docker.1ms.run"]
    },
    {
      "registry": "quay.io",
      "mirrors": ["private-mirror.test.com"]
    }
  ]
}

构建发布

下面通过test-front 工程的例子来举例说明构建发布过程。

首先我们创建一个类似Dockerfile的构建脚本,默认名称为 jib.yaml 来转化 dockerfile的命令,如下:

apiVersion: jib/v1alpha1
kind: BuildFile
from:
  image: nginx:1.27.4
creationTime: 2000
exposedPorts:
  - "80/tcp"
cmd:
  - "nginx"
  - "-g"
  - "daemon off;"
layers:
  entries:
    - name: "config"
      files:
		#  删除nginx默认配置
        - src: rm
          dest: /etc/nginx/conf.d/.wh.default.conf
		#  添加自定义nginx配置
        - src: nginx.conf
          dest: /etc/nginx/conf.d/nginx.conf
    - name: "frontend"               
      properties: 
        filePermissions: "777"
      files:
		#  添加fpt前端构建文件
        - src: "test"
          dest: "/usr/share/nginx/html" 

将文件 另存到合适目录,将脚本所需的 nginx配置及前端构建资源,放置一起

通过如下命令推送

D:\Develop\docker\jib>jib build --allow-insecure-registries --target=harbor.domain/test-front:0.0.1 --to-username=admin --to-password=Harbor12345 -c projects/test-front

查看harbor 可看到推送成功。

总结

在受网络限制的环境中,没有docker环境作为跳板,就可以快速发布到对应harbor 仓库,速度比较块,简洁方便,但是在cli模式下 无法生成本地tar包,也可以用 maven插件结合构建资源来 从代码一键推送。

参考网址:https://github.com/GoogleContainerTools/jib/tree/master/jib-cli

文章作者:1900

文章链接:https://zhuty.cn/archives/jib

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!


评论