-
Notifications
You must be signed in to change notification settings - Fork 138
Expand file tree
/
Copy pathdocker-bake.blueprint.hcl
More file actions
94 lines (87 loc) · 3.07 KB
/
docker-bake.blueprint.hcl
File metadata and controls
94 lines (87 loc) · 3.07 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
84
85
86
87
88
89
90
91
92
93
{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "18" "16" "14" "12" "10" }}
group "default" {
targets = [
{{range $phpV := $versions}}
"php{{ $phpV | replace "." "" }}",{{end}}
]
}
{{range $phpV := $versions}}{{range $variant := $variants}}
group "php{{ $phpV | replace "." "" }}-{{ $variant }}-all" {
targets = [
"php{{ $phpV | replace "." "" }}-slim-{{ $variant }}",
"php{{ $phpV | replace "." "" }}-{{ $variant }}",
{{range $nodeV := $nodeVersions}}"php{{ $phpV | replace "." "" }}-{{ $variant }}-node{{ $nodeV }}",{{end}}
]
}{{end}}{{end}}
{{range $phpV := $versions}}
group "php{{ $phpV | replace "." "" }}" {
targets = [{{range $variant := $variants}}"php{{ $phpV | replace "." "" }}-{{ $variant }}-all",{{end}}]
}{{end}}
variable "REPO" {default = "thecodingmachine/php"}
variable "TAG_PREFIX" {default = ""}
variable "PHP_PATCH_MINOR" {default = ""}
variable "IS_RELEASE" {default = "0"}
variable "GLOBAL_VERSION" {default = "v4"}
function "tag" {
params = [PHP_VERSION, VARIANT]
result = [
equal("1",IS_RELEASE) ? "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}" : "",
equal("1",IS_RELEASE) ? (notequal("",PHP_PATCH_MINOR) ? "${REPO}:${PHP_PATCH_MINOR}-${GLOBAL_VERSION}-${VARIANT}": "") : "",
"${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}",
]
}
target "default" {
context = "."
args = {
GLOBAL_VERSION = "${GLOBAL_VERSION}"
}
#platforms = ["linux/amd64", "linux/arm64"]
platforms = [BAKE_LOCAL_PLATFORM]
pull = true
output = ["type=docker"] # export in local docker
}
{{range $phpV := $versions}}{{range $variant := $variants}}
###########################
## PHP {{ $phpV }}
###########################
# thecodingmachine/php:{{ $phpV }}-v4-slim-{{ $variant }}
target "php{{ $phpV | replace "." "" }}-slim-{{ $variant }}" {
inherits = ["default"]
tags = tag("{{ $phpV }}", "slim-{{ $variant }}")
dockerfile = "Dockerfile.slim.{{ $variant }}"
args = {
PHP_VERSION = "{{ $phpV }}"
VARIANT = "{{ $variant }}"
}
}
# thecodingmachine/php:{{ $phpV }}-v4-{{ $variant }}
target "php{{ $phpV | replace "." "" }}-{{ $variant }}" {
inherits = ["default"]
tags = tag("{{ $phpV }}", "{{ $variant }}")
dockerfile = "Dockerfile.{{ $variant }}"
args = {
PHP_VERSION = "{{ $phpV }}"
VARIANT = "{{ $variant }}"
FROM_IMAGE = "slim"
}
contexts = {
slim = "target:php{{ $phpV | replace "." "" }}-slim-{{ $variant }}"
}
}
{{range $nodeV := $nodeVersions}}
# thecodingmachine/php:{{ $phpV }}-v4-{{ $variant }}-node{{ $nodeV }}
target "php{{ $phpV | replace "." "" }}-{{ $variant }}-node{{ $nodeV }}" {
inherits = ["default"]
tags = tag("{{ $phpV }}", "{{ $variant }}-node{{ $nodeV }}")
dockerfile = "Dockerfile.{{ $variant }}.node"
args = {
PHP_VERSION = "{{ $phpV }}"
VARIANT = "{{ $variant }}-node{{ $nodeV }}"
FROM_IMAGE = "fat"
NODE_VERSION = "{{ $nodeV }}"
}
contexts = {
fat = "target:php{{ $phpV | replace "." "" }}-{{ $variant }}"
}
}
{{ end }}{{ end }}{{ end }}