Using cross compilation toolchains that work from any platform
Adds darwin/arm64 support and bake targets. Static and dynamic
binary targets are available, both with glibc and musl.
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 6423da8dcd)
Signed-off-by: Tibor Vass <tibor@docker.com>
46 lines
860 B
HCL
46 lines
860 B
HCL
variable "VERSION" {
|
|
default = ""
|
|
}
|
|
|
|
variable "USE_GLIBC" {
|
|
default = ""
|
|
}
|
|
|
|
variable "STRIP_TARGET" {
|
|
default = ""
|
|
}
|
|
|
|
group "default" {
|
|
targets = ["binary"]
|
|
}
|
|
|
|
target "binary" {
|
|
target = "binary"
|
|
platforms = ["local"]
|
|
output = ["build"]
|
|
args = {
|
|
BASE_VARIANT = USE_GLIBC != "" ? "buster" : "alpine"
|
|
VERSION = VERSION
|
|
GO_STRIP = STRIP_TARGET
|
|
}
|
|
}
|
|
|
|
target "dynbinary" {
|
|
inherits = ["binary"]
|
|
args = {
|
|
GO_LINKMODE = "dynamic"
|
|
}
|
|
}
|
|
|
|
target "_all_platforms" {
|
|
platforms = ["linux/amd64", "linux/386", "linux/arm64", "linux/arm", "linux/ppc64le", "linux/s390x", "darwin/amd64", "darwin/arm64", "windows/amd64", "windows/arm", "windows/386"]
|
|
}
|
|
|
|
target "cross" {
|
|
inherits = ["binary", "_all_platforms"]
|
|
}
|
|
|
|
target "dynbinary-cross" {
|
|
inherits = ["dynbinary", "_all_platforms"]
|
|
}
|