首页 > 解决方案 > 在 Docker 容器中创建目标的规则是什么?

问题描述

要了解如何在 Jenkins 中操作 Docker 映像,我正在阅读此链接

Docker 中的“目标规则”是什么?下面的简单示例失败了,因为“没有制定目标的规则”。这在 Docker 中意味着什么?

错误和触发错误的代码

sh 'make test'上面链接中的 Jenkinsfile 中的代码行在以下块内运行时会引发错误 :

testImage.inside {
    sh "whoami"
    sh 'make test'
}

Jenkins 在尝试解释sh 'make test'代码行时抛出的实际错误是:

make test— Shell Script<1s  
    [ple-dockere-containered-app-WWNVRTE6XFKMI4JPEVK2F2U3HOGDZICATW6XBFM2IQUW5PAG5FWA] Running shell script
    + make test
    make: *** No rule to make target 'test'.  Stop.

完整Jenkinsfile的是:

node {
    // Clean workspace before doing anything
    deleteDir()

    try {
        stage ('Clone') {
            checkout scm
        }
        stage ('Build') {

            def testImage = docker.build("test-image", "./app") 

            testImage.inside {
                sh "whoami"
                sh 'make test'
            }
        }
    } catch (err) {
        currentBuild.result = 'FAILED'
        throw err
    }
}

请注意,该make test命令正在容器内运行。

标签: dockerjenkins

解决方案


推荐阅读