This repository was archived by the owner on Jun 28, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle
More file actions
84 lines (62 loc) · 2.56 KB
/
build.gradle
File metadata and controls
84 lines (62 loc) · 2.56 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
Task dockerTag = task "dockerTag" {
group "docker"
}
Task dockerPush = task "dockerPush" {
group "docker"
}
tasks.register("clean", Delete) {
group "docker"
delete file("$buildDir/docker")
}
class DockerImage {
String repo
String tag
String javaVersion
DockerImage(String repo, String tag, String javaVersion) {
this.repo = repo
this.tag = tag
this.javaVersion = javaVersion
}
}
List<DockerImage> tags = [
new DockerImage("adoptopenjdk", "11.0.10_9-jre-hotspot", "11"),
new DockerImage("adoptopenjdk", "12.0.2_10-jre-hotspot", "12"),
new DockerImage("adoptopenjdk", "13.0.2_8-jre-hotspot", "13"),
new DockerImage("adoptopenjdk", "14.0.2_12-jre-hotspot", "14"),
new DockerImage("adoptopenjdk/openjdk15", "jre-15.0.2_7", "15"),
new DockerImage("adoptopenjdk/openjdk16", "jre-16_36", "16"),
new DockerImage("eclipse-temurin", "17.0.1_12-jre-focal", "17")
]
String timestamp = new Date().format('yyyyMMdd-HHmm')
tags.each { DockerImage dockerImage ->
File dockerBuildDir = file("$buildDir/docker/${dockerImage.tag}")
dockerBuildDir.mkdirs()
TaskProvider<Task> dockerFileGen = tasks.register("dockerfileJava-${dockerImage.javaVersion}") {
group 'docker'
String dockerfileContent = file("$projectDir/src/main/docker/template/Dockerfile")
.text.replace('${REPO}', dockerImage.repo).replace('${IMAGE_TAG}', dockerImage.tag)
File dockerfile = new File(dockerBuildDir, 'Dockerfile')
dockerfile.createNewFile()
dockerfile.text = dockerfileContent
}
TaskProvider<Exec> dockerTagJava = tasks.register("dockerTagJava-${dockerImage.javaVersion}", Exec) {
group 'docker'
dependsOn dockerFileGen
workingDir dockerBuildDir
executable "docker"
args = ["build", "-t", "onstructive/java:${dockerImage.tag}-${timestamp}", "-t", "onstructive/java:${dockerImage.tag}-latest", "."]
logging.captureStandardOutput LogLevel.INFO
logging.captureStandardError LogLevel.ERROR
}
TaskProvider<Exec> dockerPushJava = tasks.register("dockerPushJava-${dockerImage.javaVersion}", Exec) {
group 'docker'
dependsOn dockerTagJava
workingDir dockerBuildDir
executable "docker"
args = ["push", "onstructive/java:${dockerImage.tag}-${timestamp}"]
logging.captureStandardOutput LogLevel.INFO
logging.captureStandardError LogLevel.ERROR
}
dockerTag.dependsOn << dockerTagJava
dockerPush.dependsOn << dockerPushJava
}