-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.gradle
65 lines (57 loc) · 2.04 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
/*
* This file was generated by the Gradle 'init' task.
*
* This is a general purpose Gradle build.
* Learn more about Gradle by exploring our samples at https://docs.gradle.org/7.2/samples
*/
plugins {
id "com.bmuschko.docker-remote-api" version "7.1.0"
}
import org.apache.tools.ant.taskdefs.condition.Os
import com.bmuschko.gradle.docker.tasks.container.*
import com.bmuschko.gradle.docker.tasks.image.*
task createDockerfile(type: Dockerfile) {
from 'node:latest'
defaultCommand('/bin/bash', '-c', "apt-get update && apt-get install -y zip && mkdir -p /nodejs && npm config set prefix /nodejs/bin && npm install -g aws-cdk && pushd /nodejs/bin && zip -r --symlinks /opt/aws-cdk.zip *")
doLast {
println 'Dockerfile creation in <rootdir>/build/docker... OK!'
}
}
task buildDockerImage(type: DockerBuildImage) {
dependsOn createDockerfile
images.add('lambda-layer-cdk:latest')
doLast {
println 'Docker image lambda-layer-cdk:latest build... OK!'
}
}
ext.maybeConvertWindowsPath = { path ->
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
path = "/${path.replace("\\", "/").replace(":", "")}"
}
return path
}
task createDockerContainer(type: DockerCreateContainer) {
def dockerBindDir = new File(buildDir, "layer")
dockerBindDir.mkdirs()
dependsOn buildDockerImage
targetImageId buildDockerImage.getImageId()
hostConfig.autoRemove = true
hostConfig.binds = ["${maybeConvertWindowsPath(buildDir.toString())}/layer" : "/opt"]
doLast {
println 'Docker container based on lambda-layer-cdk:latest build... OK!'
}
}
task startDockerContainer(type: DockerStartContainer) {
dependsOn createDockerContainer
targetContainerId createDockerContainer.getContainerId()
doLast {
println 'Docker container starting... OK!'
}
}
task exportLambdaLayerZip(type: DockerWaitContainer) {
dependsOn startDockerContainer
targetContainerId createDockerContainer.getContainerId()
doLast {
println 'Docker container export lambda-layer-cdk... OK!'
}
}