在后续的管道步骤中无法访问与Dockerfile一起安装的依赖项。如何启用?

时间:2018-12-29 14:57:23

标签: docker jenkins pipeline jenkins-blueocean

当前使用Jenkins Blue Ocean尝试建立新的管道。这是一个基于节点的项目,并且我正在Dockerfile中成功运行for,但是以后的管道步骤看不到已安装的npm install。这种行为很奇怪。

Jenkinsfile。

node_modules

Dockerfile.prod

pipeline {
  agent {
    dockerfile {
      filename 'Dockerfile.prod'
    }
  }
  stages {
    stage('Test') {
      steps {
        sh 'ls node_modules'
      }
    }
  }
}

在Dockerfile构建期间:

FROM node:8

ADD . /var/www    
WORKDIR /var/www
RUN ["npm", "install"]

在Jenkinsfile的Step 4/4 : RUN ["npm", "install"] ---> Running in de3cd138a40e ... added 1283 packages in 39.842s Removing intermediate container de3cd138a40e 阶段内:

test

1 个答案:

答案 0 :(得分:1)

问题已解决。在Jenkins编译初始dockerfile之后,对于后续的管道步骤,它将正确启动它。但是,如果一个人查看了作业日志(不在blueocean视图中),则可以看到Jenkins在启动容器WORKDIR时覆盖了docker run -t -d -u 1000:1000 -w /var/jenkins_home/workspace/workspace_name。因此,需要手动导航到预期的WORKDIR