-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Expand file tree
/
Copy pathdocker-bake.hcl
More file actions
124 lines (115 loc) 路 4.64 KB
/
Copy pathdocker-bake.hcl
File metadata and controls
124 lines (115 loc) 路 4.64 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
121
122
123
124
variable "DEPENDABOT_UPDATER_VERSION" {
default = "development"
}
variable "UPDATER_CORE_IMAGE" {
default = "ghcr.io/dependabot/dependabot-updater-core"
}
variable "UPDATER_CORE_VERSION_TAG" {
default = ""
}
variable "UPDATER_IMAGE_PREFIX" {
default = "ghcr.io/dependabot/dependabot-updater-"
}
variable "ECOSYSTEMS" {
default = [
{ name = "bazel", image = "bazel", dockerfile = "bazel/Dockerfile" },
{ name = "bun", image = "bun", dockerfile = "bun/Dockerfile" },
{ name = "bundler", image = "bundler", dockerfile = "bundler/Dockerfile" },
{ name = "cargo", image = "cargo", dockerfile = "cargo/Dockerfile" },
{ name = "composer", image = "composer", dockerfile = "composer/Dockerfile" },
{ name = "conda", image = "conda", dockerfile = "conda/Dockerfile" },
{ name = "deno", image = "deno", dockerfile = "deno/Dockerfile" },
{ name = "devcontainers", image = "devcontainers", dockerfile = "devcontainers/Dockerfile" },
{ name = "docker_compose", image = "docker-compose", dockerfile = "docker/Dockerfile" },
{ name = "docker", image = "docker", dockerfile = "docker/Dockerfile" },
{ name = "dotnet_sdk", image = "dotnet-sdk", dockerfile = "dotnet_sdk/Dockerfile" },
{ name = "elm", image = "elm", dockerfile = "elm/Dockerfile" },
{ name = "git_submodules", image = "gitsubmodule", dockerfile = "git_submodules/Dockerfile" },
{ name = "github_actions", image = "github-actions", dockerfile = "github_actions/Dockerfile" },
{ name = "go_modules", image = "gomod", dockerfile = "go_modules/Dockerfile" },
{ name = "gradle", image = "gradle", dockerfile = "gradle/Dockerfile" },
{ name = "helm", image = "helm", dockerfile = "helm/Dockerfile" },
{ name = "hex", image = "mix", dockerfile = "hex/Dockerfile" },
{ name = "julia", image = "julia", dockerfile = "julia/Dockerfile" },
{ name = "maven", image = "maven", dockerfile = "maven/Dockerfile" },
{ name = "nix", image = "nix", dockerfile = "nix/Dockerfile" },
{ name = "npm_and_yarn", image = "npm", dockerfile = "npm_and_yarn/Dockerfile" },
{ name = "nuget", image = "nuget", dockerfile = "nuget/Dockerfile" },
{ name = "pre_commit", image = "pre-commit", dockerfile = "pre_commit/Dockerfile" },
{ name = "pub", image = "pub", dockerfile = "pub/Dockerfile" },
{ name = "python", image = "pip", dockerfile = "python/Dockerfile" },
{ name = "rust_toolchain", image = "rust-toolchain", dockerfile = "rust_toolchain/Dockerfile" },
{ name = "sbt", image = "sbt", dockerfile = "sbt/Dockerfile" },
{ name = "swift", image = "swift", dockerfile = "swift/Dockerfile" },
{ name = "terraform", image = "terraform", dockerfile = "terraform/Dockerfile" },
{ name = "opentofu", image = "opentofu", dockerfile = "opentofu/Dockerfile" },
{ name = "uv", image = "uv", dockerfile = "uv/Dockerfile" },
{ name = "vcpkg", image = "vcpkg", dockerfile = "vcpkg/Dockerfile" },
]
}
target "_updater-core" {
context = "."
dockerfile = "Dockerfile.updater-core"
args = {
USER_UID = "1000"
USER_GID = "1000"
DEPENDABOT_UPDATER_VERSION = DEPENDABOT_UPDATER_VERSION
}
}
target "updater-core" {
inherits = ["_updater-core"]
description = "Updater-core base for ecosystem images"
cache-from = [
{ type = "gha", scope = "updater-core" },
{ type = "registry", ref = "${UPDATER_CORE_IMAGE}:latest" },
]
cache-to = [
{ type = "gha", mode = "max", scope = "updater-core" },
]
}
target "updater-core-publish" {
inherits = ["_updater-core"]
description = "Published updater-core image"
args = {
BUILDKIT_INLINE_CACHE = "1"
}
cache-from = [
{ type = "registry", ref = "${UPDATER_CORE_IMAGE}:latest" },
]
cache-to = [
{ type = "inline" },
]
tags = [
"${UPDATER_CORE_IMAGE}:latest",
notequal("", UPDATER_CORE_VERSION_TAG) ? "${UPDATER_CORE_IMAGE}:${UPDATER_CORE_VERSION_TAG}" : "",
]
output = [
{ type = "registry" },
]
}
target "ecosystem" {
name = item.image
matrix = {
item = ECOSYSTEMS
}
description = "Published ${item.name} ecosystem image"
context = "."
dockerfile = item.dockerfile
contexts = merge(
{
(UPDATER_CORE_IMAGE) = "target:updater-core"
},
item.name == "pre_commit" ? {
"${UPDATER_IMAGE_PREFIX}gomod:latest" = "target:gomod"
"${UPDATER_IMAGE_PREFIX}bundler:latest" = "target:bundler"
"${UPDATER_IMAGE_PREFIX}pub:latest" = "target:pub"
} : {}
)
cache-from = [
{ type = "gha", scope = item.name },
{ type = "registry", ref = "${UPDATER_IMAGE_PREFIX}${item.image}:latest" },
]
cache-to = [
{ type = "gha", mode = "max", scope = item.name },
]
}