• 工具地址: https://github.com/yuzd/jib

    工具使用

    它是一个纯粹构建镜像命令行工具,根据不同的功能有不同的参数,如下图

    windows平台
    macos平台

    作为一个纯粹的构建镜像工具,它不需要依赖docker环境,只需要读取一个json配置文件,根据配置生成镜像

    json配置文件

    命令: jib.exe -push --configfile=demo.json

    推送到镜像仓库的配置示例(从阿里云镜像仓库拉取base镜像+我要加的目录=新的镜像并推送到私有仓库):

    
    {
      "BaseHttpProxy": "",
      "BaseImage": "ccr.ccs.tencentyun.com/dotnet-core/aspnet:2.2",
      "BaseImageCredential": {
        "UserName": "aaaaaaaa",
        "Password": "xxxxx"
      },
      "TargetHttpProxy": "",
      "TargetImage": "http://127.0.0.1:5000/test1",
      "TargetTags": [
        "1.0.1"
      ],
      "TargetImageCredential": {
        "UserName": "aaaa",
        "Password": "xxxx"
      },
      "ImageFormat": "Docker",
      "ImageLayersFolder": "E:\\workspace\\demo\\publish",
      "ImageWorkingDirectory": "/publish",
      "Entrypoint": [
        "dotnet"
      ],
      "Cmd": [
        "/publish/RazorTestProject.dll"
      ],
      "ApplicationLayersCacheDirectory": "E:\\workspace\\cache",
      "SkipExistingImages":true,
      "IgnoreList":[
        "支持正则"
      ]
      "Env":{
          "env1":"value1"
      },
      "Ports":[
        {
            "port":8080,
            "protocol":"tcp"
        }
      ],
      "Volumes":[
        "/var/log",
        "/var/log2"
      ]
    }

    tar格式镜像文件本地生成

    命令: jib.exe -tar --configfile=demo.json --outfile=demo.tar

    示例

    
    {
      "BaseHttpProxy": "",
      "BaseImage": "ccr.ccs.tencentyun.com/dotnet-core/aspnet:2.2",
      "BaseImageCredential": {
        "UserName": "aaaaaaaa",
        "Password": "xxxxx"
      },
      "ImageFormat": "Docker",
      "ImageLayersFolder": "E:\\workspace\\demo\\publish",
      "ImageWorkingDirectory": "/publish",
      "Entrypoint": [
        "dotnet"
      ],
      "Cmd": [
        "/publish/RazorTestProject.dll"
      ]
    }

    json配置参数就少了推送相关的参数

    本地tar文件的镜像,可以通过docker load命令在装载到docker环境中。

    推送镜像到本机的docker环境

    命令: jib.exe -deamon --configfile=demo.json

    json配置和tar差不多

    写到最后

    该工具支持多平台(linux、win、mac) 17M左右大小,不依赖docker环境,独立构建镜像速度很快,除了第一次基础镜像的拉取需要时间,有缓存的话只需要几秒搞定 适用于在CICD流水线中使用。

    我也集成到了我的AntDeploy一键发布工具中, 开源地址: https://github.com/yuzd/AntDeploy .net应用可以下载AntDeploy Vs插件, 可以在vs中一键发布镜像推送到镜像仓库功能,还支持一键部署到iis,windows/linux服务 欢迎试用~

    关于我

    微软最有价值专家(MVP),.NET 技术专家,热爱开源,关注并喜欢研究前沿技术,热衷于技术和经验分享,长期撰写技术博客,活跃于开源社区。

    创建镜像发布到镜像仓库【不依赖docker环境】-LMLPHP

    03-27 00:16