![](/img/trans.png)
[英]How can I run a cron command with environmental variables set by kubernetes secret
[英]How to resolve Environmental Variables in a Thoughtworks Go task command
Thoughtworks Go提供了一系列傳遞給每項任務的特定於工作的環境變量。 例如,我的作業輸出與API doc指定的值相同的值。
[go] setting environment variable 'GO_ENVIRONMENT_NAME' to value 'rmp'
[go] setting environment variable 'a' to value 'b'
[go] setting environment variable 'GO_SERVER_URL' to value 'https://10.8.249.57:8154/go/'
我無法在bash任務命令中解析變量。
[go] Start to execute task: <exec command="echo" >
<arg>${GO_SERVER_URL}</arg>
只是輸出
${GO_SERVER_URL}
我試過了...
${GO_SERVER_URL}
${env.GO_SERVER_URL}
${go.GO_SERVER_URL}
$[GO_SERVER_URL]
$GO_SERVER_URL
"${GO_SERVER_URL}"
什么都行不通
Thoughtworks Go有一個關於這個確切問題的支持頁面 ,說明:
請注意,這是一個普通的exec,而不是shell exec,因此[$ FOO]將沒有所需的效果
最簡單的解決方案:
command: /bin/bash
args:
-c
echo
$GO_SERVER_URL
另一種方法是簡單地將腳本放入文件中。
為什么我知道這個? 因為我也碰到了它。
對於具有多個選項的命令,Go非常挑剔。 tedder42的回答對於簡單的回聲情況是正確的,但對於我使用帶有多個參數的curl的真實問題不起作用。 Sliivas Upadhya on the Go Google小組幫助了我。 我想在這里為其他人記錄,所以很容易找到。 看起來很明顯,但小偏差不起作用。
輸入您的命令完全如下:
XML應該如下所示:
<tasks>
<exec command="/bin/bash">
<arg>-c</arg>
<arg>curl -o test.file $GO_VAR</arg>
<runif status="passed" />
</exec>
....
</tasks>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.