dde272c4b8
CD - Docker - GHCR Images / Build and Push Images (push) Waiting to run
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
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"]
|
|
}
|