Skip to content

Bake: empty block should equal null, not empty string #2529

Description

@dvdksn

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 3b25e3f

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions