Jenkins将我的工作文件夹安装到我新构建的Docker映像中

时间:2018-12-20 14:59:08

标签: docker jenkins

我有一个非常简单的Jenkins管道,定义为Jenkinsfile

我想做的是以下事情:

  1. 构建图像。
  2. 通过在容器中运行flake8来测试代码。

问题是:

当我在容器中运行命令时,似乎Jenkins不在容器中执行命令,或者实际上是将我的整个存储库/工作文件夹装入其中。

Jenkinsfile

node {
    def app

    try {

        stage("Git Checkout") {
            checkout scm
        }

        stage('Build image') {
            app = docker.build("repo/myimage", "./src")
        }

        stage('Test image') {
            app.inside {
                sh 'ls -la'
                sh 'flake8 --config=.flake8 .'
            }
        }

    } catch(error) {
        throw error
    } finally {
        script {
            sh "docker system prune -a -f"
        }
    }

}

存储库结构

.
src/
    ...
    .flake8
    Dockerfile
utils/
    ...
README.md
Jenkinsfile

现在问题是Jenkinsfile的“测试图像”步骤中的ls -la命令实际上没有输出预期的./src文件夹。它输出我存储库的根文件夹。这意味着我不在构建的预期图像中,或者Jenkins正在将工作文件夹安装到容器中。

这导致外壳程序找不到.flake8配置文件和其他路径问题。

0 个答案:

没有答案