試圖在Jenkinsfile中傳遞兩個構建引數。
使用單一的-build-arg:
。app = docker.build("myimg:${Version}", "--build-arg VERSION=${Version}. --no-cache 。"
但在幾個方面都不作業:
app = docker.build("myimg:${Version}", "--build-arg VERSION=${Version}) --build-arg CODEARTIFACT_TOKEN=${CODEARTIFACT_TOKEN} --no-cache 。"
輸出錯誤。"docker build "正好需要1個引數。
如何傳遞兩個引數?
我怎樣才能傳遞兩個或更多的構建引數呢?
uj5u.com熱心網友回復:
感覺這是詹金斯對你的期望。
Jenkins doc說
可以通過將其他引數添加到build()方法的第二個引數來向docker build傳遞引數。當以這種方式傳遞引數時,該字串中的最后一個值必須是docker檔案的路徑,并且應該以作為構建背景關系的檔案夾結尾)
你應該嘗試在背景關系.之前添加-f ${dockerfile}。
所以它看起來像這樣
app = docker.build("myimg:${Version}", "--build-arg VERSION=${Version}. --build-arg CODEARTIFACT_TOKEN=${CODEARTIFACT_TOKEN} --no-cache -f Dockerfile 。"
假設你的Docker.build("myimg:${Version}")是由Docker.build("myimg:${Version}")構建的。
假設你的Dockerfile在當前檔案夾中。
這里是檔案:
- 串列項
https://www.jenkins.io/doc/book/pipeline/docker/
uj5u.com熱心網友回復:
問題不在于build-args的數量,而在于CODEARTIFACT_TOKEN變數。
CODEARTIFACT_TOKEN變數可能包含新的行。
因此,這一行解決了這個問題:
CODEARTIFACT_TOKEN = CODEARTIFACT_TOKEN.trim()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/318092.html
標籤:
