Files
freeCodeCamp/docker/devcontainer/docker-bake.hcl
2026-02-08 12:20:52 +05:30

51 lines
1.3 KiB
HCL

// Docker Bake configuration for freeCodeCamp devcontainer images
//
// Usage (from repo root):
// docker buildx bake -f docker/devcontainer/docker-bake.hcl # Local build (native platform)
// docker buildx bake -f docker/devcontainer/docker-bake.hcl devcontainer --push # Push multi-arch to GHCR
//
// With custom tag:
// TAG=v1.0.0 docker buildx bake -f docker/devcontainer/docker-bake.hcl devcontainer --push
variable "REGISTRY" {
default = "ghcr.io/freecodecamp"
}
variable "TAG" {
default = "latest"
}
variable "TAG_LATEST" {
default = "true"
}
group "default" {
targets = ["local-devcontainer"]
}
target "_common" {
context = "."
dockerfile = "docker/devcontainer/Dockerfile"
}
// Multi-arch image for pushing to registry (CI and local --push)
target "devcontainer" {
inherits = ["_common"]
target = "devcontainer"
platforms = ["linux/amd64", "linux/arm64"]
cache-from = ["type=gha"]
cache-to = ["type=gha,mode=max"]
tags = concat(
["${REGISTRY}/devcontainer:${TAG}"],
TAG_LATEST == "true" ? ["${REGISTRY}/devcontainer:latest"] : []
)
}
// Native platform only (fast local builds)
target "local-devcontainer" {
inherits = ["_common"]
target = "devcontainer"
output = ["type=docker"]
tags = ["ghcr.io/freecodecamp/devcontainer:latest"]
}