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