red*_*888 5 jenkins jenkins-plugins jenkins-pipeline
使用多分支管道并在我的一个阶段中运行 docker 代理,我发现容器内的工作区没有更新:
stage('run inside container') {
agent {
docker {
image "my/image"}}
steps{
sh 'ls -l'
...
Run Code Online (Sandbox Code Playgroud)
所以我发现 jenkins 正在运行这个 docker 命令:
docker run -t -d -u 1000:1000 -u root -w /home/jenkins/workspace/myworkspace@2
Run Code Online (Sandbox Code Playgroud)
它安装了工作空间,但带有“2”。这不是主工作区,看起来没有更新。我怎样才能让它使用我的主工作区?
如果您的目标是在另一个容器内运行阶段,则无需使用代理,只需执行以下操作:
stage("NPM Install") {
steps {
script {
// this will generate node_modules folder and map it
// back to this workspace.
docker.image("node:12.14.1-alpine").inside {
sh "npm install"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样 Jenkins 就会将当前的管道工作空间与容器绑定挂载。
| 归档时间: |
|
| 查看次数: |
5490 次 |
| 最近记录: |