【问题标题】:Unable to use custom variables in Gradle extension无法在 Gradle 扩展中使用自定义变量
【发布时间】:2021-06-05 17:04:04
【问题描述】:

我正在使用 JIB(不是超级相关),我想在我的部署脚本中从命令行传递变量。

我在我的 gradle 命令中使用 -PinputTag=${DOCKER_TAG} -PbuildEnv=nonprod 附加,这很酷。但是当它丢失时,我希望那个三元组能够发挥作用。

我收到了错误:

Could not get unknown property 'inputTag' for project ':webserver' of type org.gradle.api.Project.
def inputTag = inputTag ?: 'latest'
def buildEnv = buildEnv ?: 'nonprod'
jib {
    container {
        mainClass = 'com.example.hi'
    }
    to {
        image = 'image/cool-image'
        tags = ['latest', inputTag]
    }
    container {
        creationTime = 'USE_CURRENT_TIMESTAMP'
        ports = ['8080']
        jvmFlags = ['-Dspring.profiles.active=' + buildEnv]
    }
}

找到解决方案

def inputTag = project.hasProperty('inputTag') ? project.property('inputTag') : 'latest'
def buildEnv = project.hasProperty('buildEnv') ? project.property('buildEnv') : 'nonprod'

这似乎有效,这是最好的方法吗?

【问题讨论】:

    标签: java gradle jib


    【解决方案1】:
    推荐的答案 Google Cloud

    这个怎么样?

    image = 'image/cool-image:' + (project.findProperty('inputTag') ?: 'latest')
    

    注意jib.to.tags附加标签。 jib.to.image = 'image/cool-image' 已经暗示了image/cool-image:latest,所以不需要在jib.to.tags 中重复latest

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-21
      • 2019-12-18
      相关资源
      最近更新 更多