[英]Jenkins pipeline/docker :Jenkins does not seem to be running inside a container
我正在嘗試執行在 Jenkins Pipeline 中找到的代碼示例: https ://jenkins.io/doc/book/pipeline/docker/
node {
/* Requires the Docker Pipeline plugin to be installed */
docker.image('maven:3-alpine').inside('-v $HOME/.m2:/root/.m2') {
stage('Build') {
sh 'mvn -B'
}
}
}
並給我這個錯誤:
[Pipeline] withDockerContainer
Jenkins does not seem to be running inside a container
[Pipeline] // withDockerContainer
我不知道他為什么不做任何事情就這樣停下來。
我已經在最新版本上安裝了 docker、docker plugin/docker pipeline。
在配置工具中,我添加了安裝根路徑。
我錯過了什么 ? 提前致謝
此消息是正常的調試消息,可能有點令人困惑,但不是錯誤。 在編寫Jenkins管道代碼時,在初始化期間它會檢查該步驟是否已在容器中運行。 我認為這個信息可以寫得更好。
如果您遇到的問題多於此消息,請提供整個日志。 聽起來可能無法分配節點,或者未安裝docker客戶端,或者無法提取docker鏡像。
這個問題有點老了,但我遇到了類似的情況,我想分享一下。
我注意到 Jenkins 在管道日志的末尾提到了問題的原因。
例如,在我的情況下,問題指出:
java.io.IOException: Failed to run top '0458e2cc8b4e09c53bb89f680026fc8d035d7e608ed0b60912d9a61ebb4fea4d'. Error: Error response from daemon: Container 0458e2cc8b4e09c53bb89f680026fc8d035d7e608ed0b60912d9a61ebb4fea4d is not running
在檢查發生這種情況的階段時,它類似於您在使用dockerImage.inside()
時提到的上述情況,在我的情況下,原因是我的 Dockefile 已經定義了一個entrypoint
點,並且在使用inside
功能時 jenkins 會感到困惑,所以要避免這種嘗試通過將入口點作為參數傳遞給inside
函數來覆蓋entrypoint
,如下所示:
dockerImage.inside("--entrypoint=''") {
echo "Tests passed"
}
找到問題的另一個好方法是訪問您的 jenkins 服務器並使用 docker docker ps -a
列出 docker 容器,您可能會發現構建容器失敗,檢查日志然后您會得到提示,在我的情況下,日志顯示cat: 1: ./entrypoint.sh: not found
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.