-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
71 lines (57 loc) · 2.19 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
buildscript {
repositories {
mavenCentral()
maven { url 'http://dl.bintray.com/sponiro/gradle-plugins' }
}
dependencies {
classpath group: 'de.fanero.gradle.plugin.nar', name: 'gradle-nar-plugin', version: '0.3'
classpath 'com.bmuschko:gradle-docker-plugin:4.3.0'
}
}
group = 'com.sitewhere'
version = '3.0.0'
ext['nifi.base.image'] = 'apache/nifi:1.11.0'
apply plugin: 'java'
apply plugin: 'de.fanero.gradle.plugin.nar'
apply plugin: 'com.bmuschko.docker-remote-api'
docker {
url = (System.getenv("DOCKER_HOST") != null) ? System.getenv("DOCKER_HOST") : dockerProtocol + '://' + dockerHostname + ':' + dockerPort
registryCredentials {
url = registryUrl
username = registryUsername
password = registryPassword
email = registryEmail
}
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/libs-milestone" }
}
dependencies {
// Kafka streams.
compile group: 'org.apache.kafka', name: 'kafka-streams', version: '2.4.0'
// Parser for string token replacement.
compile group: 'org.apache.commons', name: 'commons-text', version: '1.8'
// Logging.
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
nar 'org.apache.nifi:nifi-standard-services-api-nar:1.11.0'
}
// Create a Dockerfile based on Nifi image and include generated nar file in lib folder.
task dockerFile(type: com.bmuschko.gradle.docker.tasks.image.Dockerfile, dependsOn: build) {
destFile = project.file('build/docker/Dockerfile')
from "${project.ext['nifi.base.image']}"
// Copy generated nar.
copyFile("${project.name}-${project.version}.nar", "/opt/nifi/nifi-current/lib")
// Start Nifi.
entryPoint("../scripts/start.sh")
}
// Copy artifact to Docker input folder.
task copyArtifactsToDocker(type: Copy, dependsOn: dockerFile) {
from "${buildDir}/libs/${project.name}-${project.version}.nar"
into 'build/docker'
}
// Build an image from the Dockerfile.
task dockerImage(type: com.bmuschko.gradle.docker.tasks.image.DockerBuildImage, dependsOn: copyArtifactsToDocker) {
inputDir = project.file('build/docker')
tags = ["${dockerRepository}/sitewhere/${project.name}:${version}"]
}