本文主要是介绍springboot学习(六十七) springboot项目通过gradle-docker-plugin插件构建为doker镜像并推送至镜像私服,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 前言
- 1、使用gradle部署springboot项目
- 2、Docker开启远程访问
- 3、安装镜像私服Harbor
- 4、gradle中配置插件
前言
springboot从2.4默认提供了打镜像的gradle插件,但通过此插件没找到能设置基础镜像的方式,参见:https://blog.csdn.net/u011943534/article/details/112136459,下面介绍一种通过第三方插件打镜像并推送至镜像私服的方式
1、使用gradle部署springboot项目
略
2、Docker开启远程访问
参考:https://blog.csdn.net/u011943534/article/details/112134818
3、安装镜像私服Harbor
参考:https://blog.csdn.net/u011943534/article/details/110918562
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-api
和com.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的一些配置:
属性名 | 类型 | 默认值 | 描述 |
---|---|---|---|
baseImage | String | openjdk:jre-alpine | docker基础镜像 |
maintainer | String | 系统属性”user.name” | 镜像的maintainer |
ports | List | [8080] | 容器暴露的端口 |
images | List | [<project.group>/:<project.version>] | build和push的镜像名称 |
jvmArgs | List | [] | jvm参数 |
mainClassName | String | classpath中唯一的主类 | 用于启动应用程序的主类名。 如果您的源代码包含多个主类文件,则为此选项设置显式值很有用。 |
url
对应远程docker API地址
registryCredentials
对应要推送的远程镜像私服地址和用户名密码。
执行dockerBuildImage
命令,构建此工程为Docker镜像,执行dockerPushImage命令,将项目构建为Docker镜像,并推送至远程镜像私服。
这篇关于springboot学习(六十七) springboot项目通过gradle-docker-plugin插件构建为doker镜像并推送至镜像私服的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!