Closed Toraja closed 1 year ago
It does make it slightly easier to grasp the hierarchy, by placing everything in a single file
variable "EXT_BASE_IMAGE" {
default = "base"
}
variable "IMAGE_TAG_PREVIX" {
default = "cde/"
}
target "base" {
context = "base"
tags = ["${IMAGE_TAG_PREVIX}base"]
}
target "go" {
context = "go"
contexts = {
baseimage = "target:${GO_BASE_IMAGE}"
}
tags = ["${IMAGE_TAG_PREVIX}go"]
}
docker buildx bake --file env/docker-bake.hcl --file env/localise/docker-bake.hcl
If the context path is relative path, it must be relative to the current directory.
variable "LOCALISE_IMAGE_TAG_PREVIX" {
default = "${IMAGE_TAG_PREVIX}/localise"
}
# Use LOCALISE_IMAGE_TAG_PREVIX to avoid image name collision
# Or, you can intentionally collide if you don't need non-localised version
target "localise-go" {
context = "localise/go"
contexts = {
baseimage = "target:${LOCALISE_GO_BASE_IMAGE}"
}
tags = ["${LOCALISE_IMAGE_TAG_PREVIX}ext"]
}
# You can use IMAGE_TAG_PREVIX if you are sure that image name will not collide
target "project-x" {
context = "project-x"
contexts = {
baseimage = "target:${PROJECT_X_BASE_IMAGE}"
}
tags = ["${IMAGE_TAG_PREVIX}ext"]
}
bake
command does not read .env
.env
file automatically, and instead loads it using Makefile's functionality, so this won't be a problem.t=xxx
to make
commandFROM
instruction in each DOCKERFILE except for base
UID
is readonly and cannot be overwritten
.env
after exporting other variables so that those can be overwrittenNeed to work on #24 first so localisation will be done later (#25)