如何将大量的竹子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