簡體   English   中英

詹金斯管道/碼頭:詹金斯似乎沒有在容器內運行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM