Laughing
利用jib-maven-plugin一键部署docker镜像
前言
jib-maven-plugin是谷歌出品的为您的Java应用程序构建Docker和OCI镜像的Maven插件。
申请Docker容器
这里已部署到Docker为例介绍,关于Docker容器的申请,可以 点击
maven中使用
通过在pom.xml文件加入插件引入spring boot工程
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.7.0</version>
<configuration>
<!--from节点用来设置镜像的基础镜像,相当于Docerkfile中的FROM关键字-->
<from>
<!--从openjdk:alpine的基础上建造-->
<image>openjdk:alpine</image>
</from>
<to>
<!--镜像名称和tag-->
<image>docker.io/iamlisen/dockerjib</image>
<tags>
<tag>v1</tag>
</tags>
<auth>
<username>用户名</username>
<password>密码</password>
</auth>
</to>
<!--容器相关的属性-->
<container>
<!--jvm内存参数-->
<jvmFlags>
<jvmFlag>-Xms4g</jvmFlag>
<jvmFlag>-Xmx4g</jvmFlag>
</jvmFlags>
<!--要暴露的端口-->
<ports>
<port>8080</port>
</ports>
</container>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
参数解释
- 从docker-hub拉取openjdk:alpine镜像作为基础镜像
- 构建标识为your_image的镜像,tag列表为v1
- 容器启动时将通过java -Xms4g -Xmx4g
- 并且暴露出端口8080
docker构建绑定到package生命周期
构建docker镜像
通过以下命令构建docker镜像
mvn compile jib:build
配置
通过将镜像设置为“推送”来配置插件:
使用谷歌容器
确保你有docker-credential-gcr命令行工具。Jib自动使用docker-credential-gcr
来获取凭证。参阅其他认证的验证方法。
例如,为了构建镜像gcr.io/my-gcp-project/my-app
,配置将是:
<configuration>
<to>
<image>gcr.io/my-gcp-project/my-app</image>
</to>
</configuration>
使用亚马逊容器
确保你有docker-credential-ecr-login命令行工具。Jib自动使用docker-credential-ecr-login
来获取凭证。参阅其他认证的验证方法。
例如,为了构建镜像aws_account_id.dkr.ecr.region.amazonaws.com/my-app
,配置将是:
<configuration>
<to>
<image>aws_account_id.dkr.ecr.region.amazonaws.com/my-app</image>
</to>
</configuration>
使用Docker容器
确保你有一个 docker-credential-helper设置。例如,在macOS,凭证助手将是docker-credential-osxkeychain
。参阅其他认证的验证方法。
例如,为了构建镜像my-docker-id/my-app
,配置将是:
<configuration>
<to>
<image>registry.hub.docker.com/my-docker-id/my-app</image>
</to>
</configuration>
扩展
扩展选项提供额外的配置选项为定制镜像生成。
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
to | to | Required | 配置目标镜像以构建应用程序。 |
from | from | 查看from | 配置基础镜像以构建应用程序的顶部。 |
container | container | 查看container | 配置从镜像中运行的容器。 |
allowInsecureRegistries | boolean | false | 如果设置为true ,Jib忽略HTTPS证书错误,并可能退回HTTP作为最后的手段。强烈建议将这个参数设置为false ,因为HTTP通信是未加密的,并且对于网络上的其他人来说是可见的,并且不安全的HTTPS并不比普通的HTTP好。如果使用自签名证书访问注册表,则将证书添加到Java运行时的可信密钥可能是启用此选项的另一种选择。 |
skip | boolean | false | 如果设置为true ,则跳过Jib执行(对于多模块项目是有用的)。这也可以通过-Djib.skip 跳过命令行选项来指定。 |
useOnlyProjectCache | boolean | false | 如果设置为true ,Jib不会在不同的Maven项目之间共享缓存。 |
from
是具有以下属性的对象:
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
image | string | gcr.io/distroless/java | 基础的镜像参考。 |
auth | auth | None | 直接指定凭证。 |
credHelper | string | None | 证书助手的后缀,它可以对基础镜像进行身份验证(遵循docker-credential- )。 |
to
是具有以下属性的对象:
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
image | string | Required | 目标镜像的参考。这也可以通过-Dimage 命令行选项来指定。 |
auth | auth | None | 直接指定凭证。 |
credHelper | string | None | 证书助手的后缀,它可以对基础镜像进行身份验证(遵循docker-credential- )。 |
tags | list | None | 额外的标签推向 |
auth
是一个具有以下属性的对象(请参阅使用特定凭据):
属性 | 类型 | 描述 |
---|---|---|
username | string | 用户名 |
password | string | 密码 |
container
是具有以下属性的对象:
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
appRoot | string | /app | 容器上放置应用程序内容的根目录。 |
args | list | None | 默认的主方法参数来运行应用程序。 |
entrypoint | list | None | 启动容器的命令(类似于Docker的入口点指令)。如果设置,则忽略jvmFlags 和mainClass 。 |
environment | map | None | 键值对,用于设置容器上的环境变量(类似于Docker的Env指令)。 |
format | string | Docker | 使用OCI 构建OCI容器映像 |
jvmFlags | list | None | 运行应用程序时要传递给JVM的附加标志。 |
labels | map | None | 用于应用镜像元数据的键值对(类似于Docker的标签指令)。 |
mainClass | string | Inferred* | 主要类从应用程序启动。 |
ports | list | None | 容器在运行时暴露的端口(类似于Docker的公开指令)。 |
useCurrentTimestamp | boolean | false | 默认情况下,Jib擦除所有时间戳以保证再现性。如果这个参数设置为true ,Jib将把镜像的创建时间戳设置为构建时间,这将牺牲可再现性,以便能够容易地判断镜像何时创建。 |
您还可以使用connection/read
系统属性为注册表交互配置HTTP连接/读取超时,该属性通过命令行以毫秒为单位配置(缺省值是20000
;您还可以将其设置为0
用于无限超时):
mvn compile jib:build -Djib.httpTimeout=3000
香草物语
https://www.xiangcaowuyu.net/java/one-click-deployment-of-docker-image-with-jib-maven-plugin.html(转载时请注明本文出处及文章链接)
多谢博主,解决问题!我的问题已经解决了,但是CDN镜像CSS文件的时候会出现权限报错,这个该怎么解决呢?
{!{data:image/webp;base64,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}!}