2017-08-11 109 views
0

我有一個簡單的詹金斯功能/程序字符串連接:與詹金斯蝙蝠命令變量

def StartContainer() { 
    def SqlPort = BranchToPort[env.BRANCH_NAME] 
    bat "docker run -e \"ACCEPT_EULA=Y\" -e \"[email protected]\" --name SQLLinux${env.BRANCH_NAME} -d -i -p $SqlPort:1433 microsoft/mssql-server-linux" 
} 

BranchToPort不正是我想要它做的,這個問題我已經是堵返回到下面的值打電話給蝙蝠,我嘗試了各種各樣的事情,這會導致groovy腳本語言編譯錯誤或bat命令在-p命令後立即結束。顯然這裏有一些非常簡單的東西。

+0

你能提供你所看到的錯誤的輸出嗎?字符串連接沒有問題(儘管你是混合語法樣式,env.BRANCH_NAME被包裝在大括號中,而SqlPort不是) – CommodoreBeard

+0

只需嘗試'echo'命令而不是'bat'並將結果添加到您的問題中。還要用'bat'添加想要執行的正確命令。 – daggett

+0

如果我使用與env.BRANCH_NAME相同的SqlPort變量語法,那麼當執行Jenkins構建時,我會得到以下錯誤堆棧開頭: groovy.lang.MissingPropertyException:沒有此類屬性:BranchToPort類:groovy。 lang.Binding – ChrisAdkin

回答

1

我的問題歸結爲Groovy映射被聲明在旋轉容器的方法範圍之外,如果我將映射的聲明移動到與啓動容器相同的方法,它的工作原理。

+0

so so closed?你回答自己了嗎? – daggett

+0

是的,問題已關閉。 – ChrisAdkin