我建立詹金斯的碼頭工人形象,並已通過ENV變量的jenkins.sh
初始化文件:詹金斯環境變量在Groovy初始化
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'])
錯誤
警告:無法運行腳本文件:/var/jenkins_home/init.groovy.d/init_ecs.groovy
下面開始時拋出一個錯誤 groovy.lang.MissingPropertyException:沒有這樣的屬性:CLUSTER類:init_ecs at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53) at org.codehaus.groovy。 runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:52) 在org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307)
我怎樣才能捕捉到環境變量存在在jenkins.sh
?
謝謝!
如果你用'env.each {println it}'迭代'env'會怎麼樣?有沒有?如果你在'jenkins.sh'中輸出'env vars?那麼Groovy中有這些嗎? –
所以導出不起作用(因爲我認爲導出的範圍是shell),但'env.each {println it}'顯示它。爲什麼不能env ['CLUSTER']工作? – ISZ
好吧,我想我跳過槍出口工程。謝謝Gerold! – ISZ