-
Notifications
You must be signed in to change notification settings - Fork 164
Expand file tree
/
Copy pathdocker-bake.hcl
More file actions
120 lines (103 loc) · 3.06 KB
/
Copy pathdocker-bake.hcl
File metadata and controls
120 lines (103 loc) · 3.06 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// docker-bake.hcl — DRY build definitions for all OpenAB images.
// Shared Rust build stage is defined once in Dockerfile.builder;
// each variant Dockerfile references it via multi-stage FROM.
//
// Usage:
// docker buildx bake <target> # build a single variant
// docker buildx bake # build all variants
//
// CI still uses plain `docker build -f Dockerfile.X .` which continues
// to work because each Dockerfile is self-contained (they inline the
// builder stage via the common 12-line pattern from Dockerfile.builder).
//
// This bake file enables LOCAL development to share a single cached
// builder layer across all variants, dramatically speeding up rebuilds.
group "default" {
targets = [
"kiro", "claude", "codex", "copilot", "cursor",
"devin", "gemini", "grok", "hermes", "mimocode",
"opencode", "antigravity", "pi", "gateway",
]
}
// --- Shared builder target (cached across all variants) ---
target "builder" {
dockerfile = "Dockerfile.builder"
target = "builder"
}
// --- Variant targets ---
target "kiro" {
dockerfile = "Dockerfile"
tags = ["openab:kiro"]
contexts = { builder = "target:builder" }
}
target "kiro-unified" {
dockerfile = "Dockerfile"
tags = ["openab:kiro-unified"]
args = { BUILD_MODE = "unified" }
contexts = { builder = "target:builder" }
}
target "claude" {
dockerfile = "Dockerfile.claude"
tags = ["openab:claude"]
contexts = { builder = "target:builder" }
}
target "codex" {
dockerfile = "Dockerfile.codex"
tags = ["openab:codex"]
contexts = { builder = "target:builder" }
}
target "copilot" {
dockerfile = "Dockerfile.copilot"
tags = ["openab:copilot"]
contexts = { builder = "target:builder" }
}
target "cursor" {
dockerfile = "Dockerfile.cursor"
tags = ["openab:cursor"]
contexts = { builder = "target:builder" }
}
target "devin" {
dockerfile = "Dockerfile.devin"
tags = ["openab:devin"]
contexts = { builder = "target:builder" }
}
target "gemini" {
dockerfile = "Dockerfile.gemini"
tags = ["openab:gemini"]
contexts = { builder = "target:builder" }
}
target "grok" {
dockerfile = "Dockerfile.grok"
tags = ["openab:grok"]
contexts = { builder = "target:builder" }
}
target "hermes" {
dockerfile = "Dockerfile.hermes"
tags = ["openab:hermes"]
contexts = { builder = "target:builder" }
}
target "mimocode" {
dockerfile = "Dockerfile.mimocode"
tags = ["openab:mimocode"]
contexts = { builder = "target:builder" }
}
target "opencode" {
dockerfile = "Dockerfile.opencode"
tags = ["openab:opencode"]
contexts = { builder = "target:builder" }
}
target "antigravity" {
dockerfile = "Dockerfile.antigravity"
tags = ["openab:antigravity"]
contexts = { builder = "target:builder" }
}
target "pi" {
dockerfile = "Dockerfile.pi"
tags = ["openab:pi"]
contexts = { builder = "target:builder" }
}
target "gateway" {
dockerfile = "Dockerfile.gateway"
tags = ["openab:gateway"]
contexts = { builder = "target:builder" }
}