docker / docker/buildx

Bake: empty block should equal `null`, not empty string

Open
#2,529 0 comments 0 reactions 1 assignee View on GitHub

@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 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.