我有Docker配置任务,我需要在docker容器中执行一个使用Bamboo变量的bash脚本。
有没有办法将所有Bamboo变量传递给docker容器?
我有很多Bamboo计划,其中包含很多不同的变量,因此将所有变量放在容器环境变量中都不是一种选择。
当然,我可以在一个任务中将它们转储到文件中,并在docker任务中解析文件中的变量,但我希望找到一个更简单的解决方案。
谢谢!
答案 0 :(得分:0)
您可以使用env_file option using compose:
web:
env_file:
- your-variables.env
或使用docker run --env-file=your-variables.env ...
。
.env文件是一个简单的键值文本文件:
# my env file
BAMBOO_ENV=development
答案 1 :(得分:0)
您使用的是哪个版本的Bamboo?
在某些版本的Bamboo中,竹变量是docker容器有问题,但在Bamboo 6.1.0中已修复:
Unable to use variables in Container name field in Run docker task
解决方法:强>
运行
之类的命令echo "export sourcepath=$ini_source_path" > scriptname.sh
chmod +x scriptname.sh
Docker Task将$ {bamboo.working.directory}映射到Docker \数据卷。
因此,刚才创建的scriptname.sh脚本在Docker容器中可用。脚本将被执行,并将正确设置变量。
此帖子中的更多信息: How to send bamboo variables from Bamboo script to docker container?
答案 2 :(得分:0)
我认为唯一的方法就是你已经提到的 - 在流程的早期专用任务中将env变量转储到文件中。说,你这样做:
#!/bin/bash
env | grep ^bamboo_ > my_env_file
请注意严格的正则表达式,以防止转储变量,如PATH。
然后在docker任务中,在“Additional arguments”中添加以下
--env-file=my_env_file