我正在构建Jenkins的Docker镜像,并已将ENV变量传递给 jenkins.sh
初始化文件:
Dockerfile
...
COPY ./jenkins.sh /usr/local/bin/jenkins.sh
jenkins.sh
echo ENV: "$ENV"
echo CLUSTER: "$CLUSTER"
echo REGION: "$REGION"
当我运行图像时,这些值完美打印出来,但我想在Jenkins初始化期间在Groovy脚本中使用它们 .
以下内容在启动时抛出错误:
import java.util.Arrays
import java.util.logging.Logger
Logger logger = Logger.getLogger("ecs-cluster")
logger.info("Loading Archeus-Midwayer...")
import jenkins.model.*
instance = Jenkins.getInstance()
def env = System.getenv()
println(env['CLUSTER'])
Error
警告:无法运行脚本文件:/var/jenkins_home/init.groovy.d/init_ecs.groovy groovy.lang.MissingPropertyException:没有这样的属性:CLUSTER for class:init_ecs at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap (ScriptBytecodeAdapter.java:53)org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:52)at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307)
如何捕获 jenkins.sh
中存在的环境变量?
谢谢!
1 回答
检查env vars:
Export
jenkins.sh
中的env vars .另见Access to build environment variables from a groovy script in a Jenkins build step ( Windows) .