-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.gradle
91 lines (76 loc) · 2.67 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
plugins {
id 'java'
id 'com.bmuschko.docker-remote-api'
id 'io.spring.dependency-management'
}
group = appGroup
version = appVersion
clean.doFirst {
delete(project.file('docker/build'))
delete(project.file('outputs'))
}
/********************* DOCKER BUILD ***********************/
import com.bmuschko.gradle.docker.tasks.image.Dockerfile
import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
import com.bmuschko.gradle.docker.tasks.image.DockerTagImage
import com.bmuschko.gradle.docker.tasks.image.DockerPushImage
import com.bmuschko.gradle.docker.tasks.container.DockerCreateContainer
import com.bmuschko.gradle.docker.tasks.container.DockerStartContainer
import com.bmuschko.gradle.docker.tasks.container.DockerStopContainer
task createDockerfile(type: Dockerfile) {
dependsOn ':backend:bootJar'
destFile.set(project.file('build/Dockerfile'))
from('adoptopenjdk/openjdk16:jre-16.0.1_9')
label(['maintainer': 'Aleksei Ermak "aleksei.ermak@gmail.com"'])
copyFile(jarName, '/app/fofola.jar')
entryPoint('java')
exposePort(8081)
defaultCommand('-Xmx2g', '-jar', '/app/fofola.jar')
}
task buildImage(type: DockerBuildImage) {
dependsOn createDockerfile
inputDir = project.file('build')
images.add(dockerImageName + ':' + appVersion)
}
task buildLatest(type: DockerTagImage) {
dependsOn buildImage
imageId = buildImage.getImageId()
repository = dockerRepository
tag = 'latest'
}
task pushImage(type: DockerPushImage) {
dependsOn buildLatest
images = [dockerImageName + ':' + appVersion, dockerImageName + ':latest']
}
task createDBContainer(type: DockerCreateContainer) {
targetImageId 'postgres:11.5'
containerName = 'fofola-postgres'
hostConfig.autoRemove = true
}
task createFofolaContainer(type: DockerCreateContainer) {
dependsOn buildLatest
containerName = 'fofola'
targetImageId buildLatest.getImageId()
hostConfig.portBindings = ['8081:8081']
hostConfig.autoRemove = true
tty = true
}
task startDBContainer(type: DockerStartContainer) {
dependsOn createDBContainer
targetContainerId createDBContainer.getContainerId()
}
task startFofolaContainer(type: DockerStartContainer) {
dependsOn startDBContainer, createFofolaContainer
targetContainerId createFofolaContainer.getContainerId()
}
task stopDBContainer(type: DockerStopContainer) {
targetContainerId createDBContainer.getContainerId()
}
task stopFofolaContainer(type: DockerStopContainer) {
dependsOn stopDBContainer
targetContainerId createFofolaContainer.getContainerId()
}
task dockerFunctionalTestFofola(type: Test) {
dependsOn startFofolaContainer
finalizedBy stopFofolaContainer
}