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镜像并推送至镜像私服的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 计算机考研2021算法真题,2021年清
 - 下一篇: ai物联网工程师_如何将Api.ai助手