覆盖 DockerStartContainer 上的环境变量
Override Environment Variables on DockerStartContainer
我正在使用以下插件 https://github.com/bmuschko/gradle-docker-plugin,我正在尝试弄清楚如何将环境变量传递给任务类型 DockerStartContainer 中的 docker 容器。
当我运行以下命令时出现错误:
Could not set unknown property 'VAR1' for task
':createDockerContainer' of type
com.bmuschko.gradle.docker.tasks.container.DockerCreateContainer.
task buildDockerImage(type: DockerBuildImage) {
dependsOn buildDockerAssets
inputDir = buildDockerfile.destFile.parentFile
tags = [ "${dockerRepo}:${project.findProperty('dockerTag') ?: 'latest'}".toString() ]
}
task createDockerContainer(type: DockerCreateContainer) {
dependsOn buildDockerImage
targetImageId { buildDockerImage.getImageId() }
VAR1 = project.findProperty('VAR1') ?: 'va1'
VAR2 = project.findProperty('VAR2') ?: 'val2'
}
我想我需要做类似 env = ["var1=val1", "var2=val2"]
的事情,但我不确定。有人知道解决这个问题的正确方法吗?
VAR1
和 VAR2
不作为 DockerCreateContainer
类型的属性存在。查看可以修改的source code, there is an env
property
示例:
task createDockerContainer(type: DockerCreateContainer) {
dependsOn buildDockerImage
targetImageId { buildDockerImage.getImageId() }
env = [
"VAR1=${project.findProperty('VAR1') ?: 'va1'}",
"VAR2=${project.findProperty('VAR2') ?: 'val2'}"
]
}
2018/07/09 编辑:插件的最新版本 (see the release notes) 弃用了 env
属性 以支持使用名为 envVars
的新 属性,即 Map<?, ?>
。发行说明指出它是在版本 3.4.0 中发布的。
现在可以在 test code(包含在下面)中看到有关如何配置任务的示例:
task createContainer(type: DockerCreateContainer) {
dependsOn pullImage
targetImageId { pullImage.getImageId() }
cmd = ['env']
// deprecated, use the below examples
env = ['HELLO=WORLD']
// add by appending new map to current map
envVars << ['one' : 'two', 'three' : 'four']
// add by calling helper method N number of times
withEnvVar('five', 'six')
withEnvVar('seven', 'eight')
}
我正在使用以下插件 https://github.com/bmuschko/gradle-docker-plugin,我正在尝试弄清楚如何将环境变量传递给任务类型 DockerStartContainer 中的 docker 容器。
当我运行以下命令时出现错误:
Could not set unknown property 'VAR1' for task ':createDockerContainer' of type com.bmuschko.gradle.docker.tasks.container.DockerCreateContainer.
task buildDockerImage(type: DockerBuildImage) {
dependsOn buildDockerAssets
inputDir = buildDockerfile.destFile.parentFile
tags = [ "${dockerRepo}:${project.findProperty('dockerTag') ?: 'latest'}".toString() ]
}
task createDockerContainer(type: DockerCreateContainer) {
dependsOn buildDockerImage
targetImageId { buildDockerImage.getImageId() }
VAR1 = project.findProperty('VAR1') ?: 'va1'
VAR2 = project.findProperty('VAR2') ?: 'val2'
}
我想我需要做类似 env = ["var1=val1", "var2=val2"]
的事情,但我不确定。有人知道解决这个问题的正确方法吗?
VAR1
和 VAR2
不作为 DockerCreateContainer
类型的属性存在。查看可以修改的source code, there is an env
property
示例:
task createDockerContainer(type: DockerCreateContainer) {
dependsOn buildDockerImage
targetImageId { buildDockerImage.getImageId() }
env = [
"VAR1=${project.findProperty('VAR1') ?: 'va1'}",
"VAR2=${project.findProperty('VAR2') ?: 'val2'}"
]
}
2018/07/09 编辑:插件的最新版本 (see the release notes) 弃用了 env
属性 以支持使用名为 envVars
的新 属性,即 Map<?, ?>
。发行说明指出它是在版本 3.4.0 中发布的。
现在可以在 test code(包含在下面)中看到有关如何配置任务的示例:
task createContainer(type: DockerCreateContainer) {
dependsOn pullImage
targetImageId { pullImage.getImageId() }
cmd = ['env']
// deprecated, use the below examples
env = ['HELLO=WORLD']
// add by appending new map to current map
envVars << ['one' : 'two', 'three' : 'four']
// add by calling helper method N number of times
withEnvVar('five', 'six')
withEnvVar('seven', 'eight')
}