Bake: empty block should equal `null`, not empty string
Open
@crazy-max is already working on this.
Since Jun 25, 2024.
area/bake
bake-ga
kind/enhancement
- Dominant language
- Go
- Stars
- 4.5k
- Forks
- 682
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 29
Description
Contributing guidelines
- I've read the contributing guidelines and wholeheartedly agree
I've found a bug and checked that ...
- ... the documentation does not mention anything about my problem
- ... there are no open or closed issues that are related to my problem
Description
with variable "FOO" {}, I think that FOO should evaluate to null, not an empty string.
Expected behaviour
variable "foo" {}
target "default" {
args = {
isNull = equal(foo, null)
isEmptyString = equal(foo, "")
}
}
$ bake --print
{
"target": {
"default": {
"context": ".",
"dockerfile": "Dockerfile",
"args": {
"isEmptyString": "false",
"isNull": "true"
}
}
}
}
Actual behaviour
variable "foo" {}
target "default" {
args = {
isNull = equal(foo, null)
isEmptyString = equal(foo, "")
}
}
$ bake --print
{
"target": {
"default": {
"context": ".",
"dockerfile": "Dockerfile",
"args": {
"isEmptyString": "true",
"isNull": "false"
}
}
}
}
Buildx version
github.com/docker/buildx 3b25e3f 3b25e3fa5c0aaad475a7516cfe852262db26b068
Docker info
No response
Builders list
[david:~/src/s/playground] $ buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
container* docker-container
\_ container0 \_ desktop-linux running 064e35a linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
default docker
\_ default \_ default running v0.13.2 linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
desktop-linux docker
\_ desktop-linux \_ desktop-linux running v0.13.2 linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
cloud-docker-default cloud error
Cannot load builder cloud-docker-default: failed to find driver "cloud"
Configuration
variable "foo" {}
target "default" {
args = {
isNull = equal(foo, null)
isEmptyString = equal(foo, "")
}
}
Build logs
No response
Additional info
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.