SpringBoot 2.2.5 使用jib-maven-plugin构建Docker镜像,并推送到Docker-Hub或者阿里云容器仓库

前言:该博客主要是记录自己学习的过程,方便以后查看,当然也希望能够帮到大家。

说明

Jib旨在让开发者使用他们熟悉的工具更轻松地将 Java 应用程序容器化。有以下优点:

  1. 简单。Jib 采用 Java 实现,并作为 Maven 或 Gradle 构建的一部分运行。你不需要维护 Dockerfile ,甚至无需创建包含所有依赖项的 JAR 包。
  2. 快速。Jib 利用镜像分层和注册表缓存来实现快速、增量构建。它读取你的构建配置,将应用分到不同的层中,只重新构建和推送发生变更的层。
  3. 可重现。Jib 支持根据 Maven 和 Gradle 的构建元数据进行声明式的容器镜像构建,只要输入保持不变,就可以通过配置重复创建相同的镜像。
  4. 不需要安装Docker环境,仅仅通过Java编译环境即可构建Docker容器镜像(并推送到镜像仓库),不需要Dockerfile,这在持续构建中减少一个环节,特别是对于开发人员来说,仅仅配置Maven或者Gradle文件即可,还是很友好的。

完整代码地址在结尾!!

第一步,在docker-hub或者阿里云上注册账号,并创建仓库,此处不多赘述,不懂请自行百度查询,如下

第二步,配置pom.xml文件加入配置,细节说明都有,如下


    com.google.cloud.tools
    jib-maven-plugin
    2.4.0
    
        
        
            openjdk:8-jdk-alpine
        
        
        
            
            xxx/${project.name}
            
            
            
                
                ${project.version}
            
            
                
                xxx
                xxx
            
        
        
            
            com.luoyu.docker.DockerApplication
            true
            
                
                8082
            
        
    
    
        
            package
            
                build
            
        
    

第三步,编写application.yml配置文件,如下:

server:
  port: 8082

spring:
  application:
    name: docker-demo-server

第四步,创建TestController类,如下

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Description:
 * @Author: luoyu
 * @Date: 2020/7/16 10:39 下午
 * @Version: 1.0.0
 */
@RestController
@RequestMapping("/test")
public class TestController {

    /**
     * @author jinhaoxun
     * @description 测试接口
     */
    @GetMapping(value = "/get", produces = "application/json; charset=UTF-8")
    public String getTest1() throws Exception {
        return "Hello";
    }
}

第五步,进入终端,在项目根路径下执行:mvn clean package -Dmaven.test.skip=true

说明:执行该命令会自动对项目进行打包,构建,并推送到远程仓库

第六步,验证,在docker-hub或者阿里云上,查看对应仓库是否已经有刚推送的镜像

第七步,使用docker命令拉取镜像并运行容器

docker run -dit --name docker-demo -p 8082:8082 xxx/docker-demo:1.0.0

第八步,浏览器访问:http://localhost:8082/test/get,成功访问则成功

完整代码地址:https://github.com/Jinhx128/springboot-demo
注:此工程包含多个module,本文所用代码均在docker-demo模块下

后记:本次分享到此结束,本人水平有限,难免有错误或遗漏之处,望大家指正和谅解,欢迎评论留言。

你可能感兴趣的:(SpringBoot 2.2.5 使用jib-maven-plugin构建Docker镜像,并推送到Docker-Hub或者阿里云容器仓库)