springboot简单项目_原来通过Jib可以使springboot项目容器化如此简单

      如今容器使 Java 开发者比以往任何时候都更靠近“一次编写,随处运行” 的工作流程,但容器化 Java 应用却并非易事:你必须先编写 Dockerfile ,root 后运行 Docker 守护进程,等待构建完成,最后将镜像推送至远程注册表。

     Jib 将处理将应用打包到容器镜像过程中的所有步骤,它直接与 Maven 和 Gradle Java 开发环境集成,不需要你编写 Dockerfile 或安装 Docker ,只需将其作为插件添加到你的构建中,就可以立即将 Java 应用容器化。

    如下是Docker构建流程和Jib构建流程的区别,我们可以看到Jib构建相当简单,省去了Docker构建复杂的过程

Docker 构建流程:

3852313b4c579409f6d45b32854d3feb.png

Jib 构建流程:

9186bcbe6862831bde2a5f4278dc6e2a.png

Jib 提供了如下四种方式构建,我们今天使用Maven插件的方式来构建一下。

        Maven:请参阅有关jib-maven-plugin的文档。

        Gradle:请参阅文档jib-gradle-plugin。

        Jib Core:Java的通用容器构建库。

        Jib CLI:使用Jib Core构建图像的命令行界面

首先在springboot项目的pom.xml中添加jib插件,如下:

<plugin>    <groupId>com.google.cloud.toolsgroupId>    <artifactId>jib-maven-pluginartifactId>    <version>2.6.0version>    <configuration>        <from>                        <image>openjdk:8-jdk-stretchimage>        from>        <to>                    <image>aimr0215/hellojib:${project.version}image>        to>    configuration>plugin>

在pom.xml文件所在目录执行以下命令即可自动推送到 hub.docker.com,其中aimr0215是我在hub.docker.com上的注册账号,密码此处省略。填入你自己注册的账号密码即可。执行如下命令

mvn compile jib:build -Djib.to.auth.username=填写你的账号 -Djib.to.auth.password=填写你的密码

运行结果如下:

[INFO] Scanning for projects...[INFO] [INFO] ------------------------< com.hzp:jib-project >-------------------------[INFO] Building jib-project 0.0.1-SNAPSHOT[INFO] --------------------------------[ jar ]---------------------------------[INFO] [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ jib-project ---[INFO] Using 'UTF-8' encoding to copy filtered resources.[INFO] Copying 1 resource[INFO] Copying 0 resource[INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ jib-project ---[INFO] Nothing to compile - all classes are up to date[INFO] [INFO] --- jib-maven-plugin:2.6.0:build (default-cli) @ jib-project ---[WARNING] 'mainClass' configured in 'maven-jar-plugin' is not a valid Java class: ${start-class}[INFO] [INFO] Containerizing application to aimr0215/hellojib:0.0.1-SNAPSHOT...[WARNING] Base image 'openjdk:8-jdk-stretch' does not use a specific image digest - build may not be reproducible[INFO] Using credentials from for aimr0215/hellojib:0.0.1-SNAPSHOT[INFO] The base image requires auth. Trying again for openjdk:8-jdk-stretch...[WARNING] The credential helper (docker-credential-desktop) has nothing for server URL: registry-1.docker.io[WARNING] Got output:credentials not found in native keychain[WARNING] The credential helper (docker-credential-desktop) has nothing for server URL: registry.hub.docker.com[WARNING] Got output:credentials not found in native keychain[INFO] Using credentials from Docker config (/Users/hzp/.docker/config.json) for openjdk:8-jdk-stretch[INFO] Using base image with digest: sha256:d8d62fe0d8e9f3e6e62921c7d738c9a962efd6887b2b282dc2f852d7f1ee4512[INFO] [INFO] Container entrypoint set to [java, -cp, /app/resources:/app/classes:/app/libs/*, com.hzp.jibproject.JibProjectApplication][INFO] [INFO] Built and pushed image as aimr0215/hellojib:0.0.1-SNAPSHOT[INFO] Executing tasks:[INFO] [==============================] 100.0% complete[INFO] [INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time:  03:02 min[INFO] Finished at: 2020-11-24T18:00:07+08:00[INFO] ------------------------------------------------------------------------

然后我们打开docker hub网站已经可以看到推送上去的镜像文件。

4c3a949f80ef3a2749142fbcd141bf7f.png

经过上述操作,一个项目的镜像文件就制作完成了。更多的操作可以参考jib官方github:

https://github.com/GoogleContainerTools/jib
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值