覆盖DockerStartContainer上的环境变量

时间:2017-12-15 16:08:55

标签: gradle docker-container

我正在使用以下插件https://github.com/bmuschko/gradle-docker-plugin,而我正试图弄清楚如何将环境变量传递给任务类型DockerStartContainer中的docker容器。

当我遇到以下情况时,我收到错误:

  

无法设置未知属性' VAR1'为了任务   ':createDockerContainer'类型   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"]之类的事情,但我不确定。任何人都知道正确的方法吗?

1 个答案:

答案 0 :(得分:3)

VAR1VAR2不存在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属性,转而使用名为{{1}的新属性那是一个envVars。发行说明指出它是在3.4.0版本中发布的。

现在可以在test code(包含在下面)中看到如何配置任务的示例:

Map<?, ?>