mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-02-12 00:00:36 -05:00
51 lines
1.3 KiB
HCL
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"]
|
|
}
|