如何将大量的竹子variables传递给docker集装箱?

我有Dockerconfiguration任务,我需要在Docker容器中执行一个使用Bamboovariables的bash脚本。

有没有办法将所有的竹子variables传递给docker集装箱?

我有很多的竹计划,其中有很多不同的variables,所以把所有的variables放在容器环境variables不是一个选项。

当然,我可以在一个任务中将它们转储到文件中,并在Docker任务中parsing文件中的variables,但是我希望find一个更简单的解决scheme。

谢谢!

您可以使用compose使用env_file选项 :

web: env_file: - your-variables.env 

或者使用docker run --env-file=your-variables.env ...

env文件是一个简单的键值文本文件:

 # my env file BAMBOO_ENV=development 

你使用的是什么版本的竹子?

竹子variables存在一个问题,就是某些版本的竹子中的docker容器,但是在竹子6.1.0中被修复了:

无法使用运行docker任务中“容器名称”字段中的variables

解决方法:

  • 创build一个在Docker Task之前运行的脚本任务。
  • 运行类似的命令

     echo "export sourcepath=$ini_source_path" > scriptname.sh chmod +x scriptname.sh 

Docker任务将映射$ {bamboo.working.directory}到Docker \数据卷。

所以刚创build的scriptname.sh脚本在Docker容器中可用。脚本将被执行,并将正确设置variables。

在这篇文章中的更多信息: 如何发送从Bamboo脚本的竹variables到docker集装箱?

我认为唯一的方法就是你已经提到的 – 在stream程中早些时候转储envvariables到专门的任务文件。 说,你这样做:

 #!/bin/bash env | grep ^bamboo_ > my_env_file 

请注意严格的正则expression式,以防止诸如PATH之类的转储variables。

然后在泊坞窗任务中,在“其他参数”中添加以下内容

 --env-file=my_env_file