Gradle 重写DockerStartContainer上的环境变量

Gradle 重写DockerStartContainer上的环境变量,gradle,docker-container,Gradle,Docker Container,我正在使用下面的插件,并试图找出如何将环境变量传递给任务类型DockerStartContainer中的docker容器 当我运行以下命令时,会出现错误: 无法为任务设置未知属性“VAR1” 类型的“:createDockerContainer” com.bmuschko.gradle.docker.tasks.container.DockerCreateContainer 任务构建DockerImage(类型:DockerBuildImage){ 德彭森大厦 inputDir=buildDoc

我正在使用下面的插件,并试图找出如何将环境变量传递给任务类型DockerStartContainer中的docker容器

当我运行以下命令时,会出现错误:

无法为任务设置未知属性“VAR1” 类型的“:createDockerContainer” com.bmuschko.gradle.docker.tasks.container.DockerCreateContainer

任务构建DockerImage(类型:DockerBuildImage){
德彭森大厦
inputDir=buildDockerfile.destFile.parentFile
tags=[“${dockerepo}:${project.findProperty('dockerTag')?:'latest'}.toString()]
}
任务createDockerContainer(类型:DockerCreateContainer){
德彭森大厦
targetImageId{buildDockerImage.getImageId()}
VAR1=project.findProperty('VAR1')?:'va1'
VAR2=project.findProperty('VAR2')?:'val2'
}

我猜我需要做一些类似于
env=[“var1=val1”,“var2=val2”]
的事情,但我不确定。有人知道正确的方法吗?

VAR1
VAR2
DockerCreateContainer
类型上不作为属性存在。查看您可以修改的

例如:

任务createDockerContainer(类型:DockerCreateContainer){
德彭森大厦
targetImageId{buildDockerImage.getImageId()}
环境=[
“VAR1=${project.findProperty('VAR1')?:'va1'}”,
“VAR2=${project.findProperty('VAR2')?:'val2'}”
]
}

2018/07/09编辑:插件()的最新版本不推荐使用
env
属性,而是使用名为
envVars
的新属性,即
映射
。发行说明指出,它是在3.4.0版中发布的

有关如何立即配置任务的示例,请参见(包括以下内容):

任务createContainer(类型:DockerCreateContainer){
德彭森普尔图像
targetImageId{pullImage.getImageId()}
cmd=['env']
//已弃用,请使用以下示例
env=['HELLO=WORLD']
//通过将新地图附加到当前地图来添加

envVars我也有同样的问题。代码是://use
envVars
而不是@Deprecated@Input@Optional String[]env@Input@Optional final Map envVars=[:]env已被弃用,我正在尝试设置envVars,但没有work@Perimosh谢谢你指出这一点。它看起来在最近的版本中已经改变了,我编辑了我的问题来说明这一点。哦,实际上我确实意识到了一些其他的事情,但没有更新这篇文章。如果你打开3.2.4版的代码,这是最新的,那么代码只显示“env”,不显示“envVars”。我认为他们已经完成了主分支的一些正在进行的工作,但3.2.4的分支是正确的。我将投票支持你的答案,因为它对我有效:env=[“var1=value1”,“var2=value2”]