springboot学习(六十七) springboot项目通过gradle-docker-plugin插件构建为doker镜像并推送至镜像私服

news/2024/5/20 2:17:36 标签: spring boot, gradle, java, docker, springboot打镜像

文章目录

  • 前言
  • 1、使用gradle部署springboot项目
  • 2、Docker开启远程访问
  • 3、安装镜像私服Harbor
  • 4、gradle中配置插件


前言

springboot从2.4默认提供了打镜像的gradle插件,但通过此插件没找到能设置基础镜像的方式,参见:https://blog.csdn.net/u011943534/article/details/112136459,下面介绍一种通过第三方插件打镜像并推送至镜像私服的方式

gradlespringboot_11">1、使用gradle部署springboot项目

2、Docker开启远程访问

参考:https://blog.csdn.net/u011943534/article/details/112134818

3、安装镜像私服Harbor

参考:https://blog.csdn.net/u011943534/article/details/110918562

gradle_22">4、gradle中配置插件

buildscript中引入插件

buildscript {
    repositories {
        ……
        mavenCentral()

    }
    dependencies {
        classpath "com.bmuschko:gradle-docker-plugin:6.7.0"
    }
}

插件官网:https://bmuschko.github.io/gradle-docker-plugin

项目路径下的gradle.properties中添加版本信息:

dockerRemoteAddr=tcp://172.16.10.190:2375
dockerRegistryUrl=172.16.10.160:88
dockerRegistryUsername=admin
dockerRegistryPassword=Harbor12345

添加配置:

apply plugin: 'com.bmuschko.docker-remote-api'
apply plugin: 'com.bmuschko.docker-spring-boot-application'
……
dockerCreateDockerfile {
    instruction 'RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone'
    environmentVariable 'TimeZone', 'Asia/Shanghai'
    environmentVariable 'myenv', 'this is my test'
}

docker {
    url = "${dockerRemoteAddr}"
    springBootApplication {
        baseImage = "${dockerRegistryUrl}/library/oneclick/openjdk:11-jdk-oracle"
        maintainer = 'newframe'
        ports = [6001, 8719]
        images = ["${dockerRegistryUrl}/library/${rootProject.name}/${project.name}:${version}"]
        jvmArgs = ['-Djava.security.egd=file:/dev/./urandom']
        mainClassName = "com.iscas.business.product.ProductApp"
    }
    registryCredentials {
        url = "http://${dockerRegistryUrl}"
        username = "${dockerRegistryUsername}"
        password = "${dockerRegistryPassword}"
    }
}

com.bmuschko.docker-remote-apicom.bmuschko.docker-spring-boot-application是两个插件,除了这俩,还有一个插件com.bmuschko.docker-java-application

插件说明
com.bmuschko.docker-remote-api提供自定义任务以通过其远程 API 与 Docker 交互
com.bmuschko.docker-java-application为 Java 应用程序创建并推送 Docker 映像
com.bmuschko.docker-spring-boot-application为 Spring Boot 应用程序创建并推送 Docker 映像

springBootApplication对应springboot的一些配置:

属性名类型默认值描述
baseImageStringopenjdk:jre-alpinedocker基础镜像
maintainerString系统属性”user.name”镜像的maintainer
portsList[8080]容器暴露的端口
imagesList[<project.group>/:<project.version>]build和push的镜像名称
jvmArgsList[]jvm参数
mainClassNameStringclasspath中唯一的主类用于启动应用程序的主类名。 如果您的源代码包含多个主类文件,则为此选项设置显式值很有用。

url对应远程docker API地址
registryCredentials对应要推送的远程镜像私服地址和用户名密码。

执行dockerBuildImage命令,构建此工程为Docker镜像,执行dockerPushImage命令,将项目构建为Docker镜像,并推送至远程镜像私服。
在这里插入图片描述


http://www.niftyadmin.cn/n/1302149.html

相关文章

Linux CentOS7设值nginx开机自启动

Linux CentOS7设值nginx开机自启动 进入到/lib/systemd/system/目录 [rootiz2z init.d]# cd /lib/systemd/system/ 创建nginx.service文件&#xff0c;并编辑 # vim nginx.service 内容如下: [Unit] Descriptionnginx service Afternetwork.target [Service] Typeforking E…

Springboot捕获全局异常:MethodArgumentNotValidException

Springboot捕获全局异常&#xff1a;MethodArgumentNotValidException 控制器 方法上添加Valid注解 PostMapping("/update")RequiresPermissions("user:update")public R update(RequestBody Valid UserEntity user) {userService.update(user);return R…

istio学习(二) 使用JWT进行权限验证

文章目录前言1、生成JWK2、测试密钥可用性3、创建RequestAuthentication4、访问测试5、创建AuthorizationPolicy6、JAVA生成密钥前言 参考&#xff1a;https://www.cnblogs.com/kirito-c/p/12464531.html 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考…

EasyExcel 去掉不需要导出的字段

EasyExcel 去掉不需要导出的字段 参考链接&#xff1a;https://blog.csdn.net/a_tzluy/article/details/111830900

springboot学习(六十八) springboot-webflux全局异常处理

文章目录前言一、自定义错误处理二、加载自定义错误处理的配置信息三、效果前言 如果springboot中未使用springmvc的依赖&#xff0c;而是使用了webflux的依赖&#xff0c;全局异常处理的方式需要做给改变。 如果是springmvc,可以通过下面方式处理异常 Configuration Slf4j p…

MySQL 名次查询

MySQL 名次查询 链接&#xff1a;https://www.cnblogs.com/-mrl/p/9073375.html

spring-cloud-alibaba(一) 安装单机版nacos

文章目录1、下载2、安装1、下载 github地址&#xff1a;https://github.com/alibaba/Nacos 使用版本&#xff1a;2.0.3 下载地址&#xff1a;https://github.com/alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.tar.gz 2、安装 前提是安装jdk1.8 启动服务 tar …

Linux命令删除文件

Linux命令删除文件 使用rm -rf 目录名字 命令即可 转载&#xff1a;https://www.cnblogs.com/maxmoore/p/12023338.html