DevOps之docker自动化部署-docker任务插件开发

为了简化各个业务系统 build.gradle添加大量重复性docker-task,特编写插件,生成单一jar文件。
简化各个项目的接入过程。
整个Devops项目架构
在这里插入图片描述
开发过程中,参考了以下项目:
docker-build-task插件开发参考

插件源码,如有需要了解,可评论联系。

build.gradle配置如下:

buildscript {
    repositories {
        maven { url "http://...:8081/repository/maven-snapshots/" }
        maven { url "http://...:8081/repository/aliyun/" }
        mavenCentral()
    }
    dependencies {
        classpath "com.bmuschko:gradle-docker-plugin:3.2.1"
    }
}
version '1.0.4-SNAPSHOT'

//apply plugin: 'com.bmuschko.docker-java-application'
apply plugin: 'com.bmuschko.docker-remote-api'
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'groovy'
apply plugin: 'java-gradle-plugin'

dependencies {
    compile gradleApi()
    compile localGroovy()
    /*compile 'org.codehaus.groovy:groovy-all:2.3.11'*/
    compile group: 'org.gradle', name: 'gradle-tooling-api', version: '2.13'
    compile('com.bmuschko:gradle-docker-plugin:3.2.1')
    testCompile group: 'junit', name: 'junit', version: '4.12'
}
uploadArchives {
    repositories {
        mavenDeployer {
            //userName  和 password 为maven的用户名和密码
            //http://...:8081/repository/maven-snapshots/
            repository(url: "http://...:8081/repository/maven-snapshots/") {
                authentication(userName: "admin", password: "admin123")
            }
            pom.project {
                groupId="com.anji.devops"
                artifactId="docker-plugin"
                name=project.name
                version=project.version
                //version="1.0.0"
                packaging='jar'
                description='docker-plugin'
            }
        }
    }
}
artifacts {
    archives jar
}

插件开发完成后,接入方引用插件jar即可集成docker-build相关task.

apply plugin: 'com.anji.devops.docker-plugin'

jar上传maven仓库,参考
gradle插件开发参考

原文地址:https://www.cnblogs.com/coding-now/p/14660602.html