我的谷歌

简介

Jib 是 Google 开发的可以直接构建 Java 应用的 Docker 和 OCI 镜像的类库,以 Maven 和 Gradle 插件形式提供。

通过 Jib,Java 开发者可以使用他们熟悉的 Java 工具来构建容器。Jib 是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的所有步骤。它不需要你编写 Dockerfile 或安装 Docker,而且可以直接集成到 Maven 和 Gradle中 —— 只需要将插件添加到构建中,就可以立即将 Java 应用程序容器化。

配置

maven

编辑pom.xml文件,添加以下内容:

<build>
        <plugins>
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>0.9.2</version>
                <configuration>
                    <from>
                        <image>lusyoe/distroless_java</image>
                        <credHelper>pass</credHelper>
                    </from>
                    <to>
                        <image>lusyoe/k8s-example</image>
                        <credHelper>pass</credHelper>
                    </to>
                </configuration>
            </plugin>
        </plugins>
    </build>

配置说明:

  • from:打包docker的基础镜像,默认镜像是:gcr.io/distroless/java ,需要翻墙
  • to:默认push到dockerhub指定仓库
  • credHelper:docker认证,这个就有点复杂了,下面再详细说明

credHelper

这个是使用了第三方的一个docker认证工具,源码仓库:https://github.com/docker/docker-credential-helpers

这里我提供一个linux的二进制压缩包: 
https://download.youkuaiyun.com/download/lusyoe/10534491

下面是配置操作步骤:

1. 解压

下载好后,将其复制到/usr/bin路径下,然后通过以下命令进行解压: 
tar -xf docker-credential-pass-v0.6.0-amd64.tar.gz

验证是否可用: 
docker-credential-pass version 
如果打印出0.6.0就表示正常

2. 安装gpg、pass

执行以下命令: 
CentOS: 
sudo yum install gpg pass -y 
Ubuntu: 
sudo apt-get install gpg pass -y

3. 创建签名

通过gpg2命令生成签名: 
gpg2 --gen-key 
根据提示,一路确认下来就可以了。中间会提示输入密码,这个要记住了,后面会用到。

最后生成随机数的时候可能会慢一点,随便在键盘上敲点字符就可以了。 
最终生成的内容如下:

gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key xxxxx marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/6CC91C4E 2018-07-11
      Key fingerprint = 8E3C 1083 6041 33A8 99CA  DC55 1E68 4783 6CC9 1C4E
uid                  lusyoe <xxxxx@xxx.com>
sub   2048R/595B7456 2018-07-11

4. 配置pass

  • 初始化 
    生成完签名后,通过pass工具进行初始化一下,执行以下命令: 
    pass init <gpg-key> 
    gpg-key就是上一步生成内容的第二行key后面的xxxxx内容。

  • 插入密钥检查 
    pass insert docker-credential-helpers/docker-pass-initialized-check 
    这里会提示输入密码,最好保持跟之前的gpg一致即可,后面还会提示输入gpg的密码

  • 验证pass是否已初始化 
    pass show docker-credential-helpers/docker-pass-initialized-check

5. 配置docker

编辑~/.docker/config.json文件,添加以下内容:

{
    "credsStore": "pass"
}

配置完后,就可以使用:docker login开始登陆了。

构建

先编译,然后再打包镜像,当然也可以绑定maven构建周期,自动打包镜像。 
mvn compile 
mvn jib:build

折腾了一会,最后再来说说优缺点

优点

  • 无需编写Dockerfile,甚至无需安装docker
  • 无需再执行docker build、push命令了
  • 增量构建镜像,无需每次编译项目先打包jar

缺点

  • 默认拉取的基础镜像是gcr仓库的,需要翻墙,并且jdk默认是openjdk
  • 在拉取自定义的基础镜像和push构建的镜像这块,设计的不够友好,依赖需要第三方的加密组件(折腾了好一会);
  • 侵入性太强,需要每个项目都添加上maven插件。如果是现有方案,只需要添加一个Dockerfile就可以了,而且定制化高
  • 只支持java平台
谷歌邮箱开发者API是一组由谷歌提供的接口,允许开发者与谷歌邮箱进行交互和集成。通过使用这些API,开发者可以实现以下功能: 1. 访问邮件:开发者可以使用API读取、发送和删除用户的邮件。可以检索邮件的元数据(如主题、发件人、收件人等),以及邮件的内容和附件。 2. 管理标签和文件夹:开发者可以使用API创建、修改和删除用户的标签和文件夹。可以将邮件归类到特定的标签或文件夹中,以便更好地组织和管理邮件。 3. 进行搜索和过滤:开发者可以使用API执行高级搜索和过滤操作,以根据特定条件检索用户的邮件。可以根据关键字、发件人、收件人、日期等进行搜索。 4. 实时通知:开发者可以使用API设置实时通知,以便在用户的邮箱中发生新邮件或其他事件时接收通知。这样可以实现即时更新和提醒功能。 要使用谷歌邮箱开发者API,你需要进行以下步骤: 1. 创建项目和凭据:在谷歌开发者控制台创建一个新项目,并生成API凭据(客户端ID和客户端密钥)。 2. 授权访问:使用OAuth 2.0协议进行用户授权,获取访问令牌和刷新令牌。用户需要授权你的应用程序访问他们的谷歌邮箱数据。 3. 调用API:使用API凭据和访问令牌,通过API调用进行邮件读取、发送、删除等操作。 4. 处理响应:根据API的响应进行相应的处理,例如解析邮件内容、处理搜索结果等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值